位运算符

71 阅读2分钟
object Base09 {
  def main(args: Array[String]): Unit = {
    // 位运算
    /**
     * 10进制                2进制
     *  0                     0
     *  1                     1
     *  2                    10
     *  3                    11
     *  4                    100
     *  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)
     *
     * 6&2 ---> 2
     *        6 -> 1 1  0
     *        2 -> 0 1  0
     *     &--------------
     *             0 1  0
     *
     * 6|2 ---> 6
     *        6 -> 1 1  0
     *        2 -> 0 1  0
     *      &-------------
     *             1  1  0 (6)
     *
     */
    println(s"4|5=${ 4|5 }")
  }

}

*** 运算符的优先级

object Base10 {
  def main(args: Array[String]): Unit = {
    val a = true
    val b = false
    val c = false
    /** && 的优先级要高于 || */
    println(a || b && c ) //ture
    
val result = 10 - 2 + 3 * 4 / 2
println(result)  //14

  }

}

image.png

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

   //   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.2 + 0.2 == 0.4) //true


  }

}
object Base12 {
  def main(args: Array[String]): Unit = {

    val a = 2147483647
    val b = 1
    // val c = (a + b) / 2 //Bug
    //val c = a - (a-b)/2 // 高手计算平均数
    //println(c)

    // 大树字做计算
    // 1111111111111 * 22222222222221
     //val c : Double = 1111111111111111111111111111111111111111111111f * 11111111111111111111111111111111111111111111
     //val d = BigInt("111111111111111111111111111111111111111111111111111111111111") *BigInt("111111111111111111111111111111111111111111111111111111111111111")
    //println(c)
    //println(d)
  }
object Base13 {
   def main(args: Array[String]): Unit = {
     // println("请输入年龄:")
     //val age = scala.io.StdIn.readInt()
     //if(age >= 18 ){
     //println("成年")
     //  }else{
     //  println("未成年")
     //  }
     // }
     println("请输入正方形的边长a:")
     val a = scala.io.StdIn.readInt()
     println("请输入长方形的长:")
     val b = scala.io.StdIn.readInt()
     println("请输入长方形的宽:")
     val c = scala.io.StdIn.readInt()
     if (a * a < b * c) {
       println("RECTANGLE")
     } else if   (a * a > b * c){
       println("SQUARE")}
       else {
         println("SAME")}


     }
   }
object Base14 {
  def main(args: Array[String]): Unit = {
    println("请输入正整数分数:")
    val a = scala.io.StdIn.readInt()
    if(a>=90 && a<=100){
      println("A")
    }else if (a>=80 && a<=89){
      println("B")
    }else if (a>=70 && a<=79){
      println("C")
    }else if (a>=60 && a<=69){
      println("D")
    }else if(a>=0 && a<=59){
      println("E")
    }
  }

}