5.按位或运算符

42 阅读1分钟

10进制与2进制

10进制 2进制

  • 0 <-> 0
  • 1 <-> 1
  • 2 <-> 10
  • 3 <-> 11
  • 4 <-> 100
  • 5 <-> 101
  • 6 <-> 110

按位与运算符

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)
val result = 10 - 2 + 3 *4 / 2
println(result)//问题1

val a =true

val b =false

val c =false

println(a || b && c)//问题2

问题1 = 14
问题2 = true

Scala中运算符的优先级

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

精度问题

//println(a + b == c)
    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

大数字计算

//    val a = 2147483647
//    val b =1
//        val c = (a+b)/2
//    val c = a - (a-b)/2
//    println(c)

// 大数字计算
// 1111111111111111111111111111111 * 2222222222222222222222222222
    val c:Double = 11111111111111111111111111111111111111.0 * 1111111111111111111111111111111111111111.0
    val d = BigInt("11111111111111111111111111111111111111111111111111") * BigInt("11111111111111111111111111111111111111111111111111111111111111")
    println(c)
    println(d)

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