scala的位运算符,10进制和2进制

24 阅读1分钟
object Base09 {
  def main(args: Array[String]): Unit = {
    //位运算  把10进制转换成二进制表示其中的某个数字
    /**
     * 10进制        2进制
     * 0              0
     * 1              1
     * 2              10
     * 3              11
     * 4              100
     * 5              101
     * 6              110
     * 7              111
     * ----------------------
     * &按位与运算符 0&1 = 0    1&0 = 0   0&0 = 0   1&1 = 1
     * 4&5 ---> 4
     *       4->1 0 0
     *       5->1 0 1
     *       -----------
     *          1 0 0 (4)
     *
     *|换位与运算符   0|1=1    1|0=1  0|0=0  1|1= 1
     * 4|5--->5
     * 4->1 0 0
     * 5->1 0 1
     * --------
     *    1 0 1 (5)
     *
     * 6&2
     * 6->1  1  0
     * 2->0  1  0
     *    0  1   0(6)
     *6|2
     * 6->1  1  0
     * 2->0  1  0
     *    1  1  0
     */
    println(s"4|5=${4|5}")
  }

}

屏幕截图 2025-09-17 092815.png

object Base10 {
  def main(args: Array[String]): Unit = {
    val a = true
    val b = false
    val c = false
    println(a || b && c)   //先算&&再算||

    val result = 10 - 2 +3 * 4 / 2
    println(result)
  }
}

屏幕截图 2025-09-17 093105.png


object Base11 {
  def main(args: Array[String]): Unit = {
    val a = 0.1
    val b = 0.2
    val c = 0.3

    println(1 + 2 == 3)//true
    println(0.1 + 0.2 == 0.3)//false
    println(BigDecimal(0.1) + BigDecimal(0.2) == BigDecimal(0.3) )//true
    println(0.1 + 0.1 == 0.2)//true
  }
}

屏幕截图 2025-09-17 102158.png


object Base12 {
  def main(args: Array[String]): Unit = {
    val a = 2147483647
    val b = 1
    val c = a - (a - b)/2
    println(c)
    //大数字计算
    111111 * 222221
    //val c :Double=1111111111*111111111111111111111111
    //val d =BigInt("111111111111111")*BigInt("11111111111111")
//    println(c)
//    println(d)
  }
}

屏幕截图 2025-09-17 102355.png