常用的位运算符:
十进制转化为二进制
// 位运算:把10进制在数转成二进制表示其中的某个数字
/**
* 10进制 二进制
* 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)
*/
基本规则(优先级):
1. 乘(*)除(/)模(%) > 加(+)减(-)
2. 算术(+-*/%)> 关系(><>=!=)> 赋值(=)**
3. && >||
def main(args: Array[String]): Unit = {
val result =10 - 2 + 3 * 4 / 2 //为14
val a = true
val b = false
val c = false
/**println(a || b && c) **///为true
浮点数精度问题
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
//解决方案:使用BigDecimal()函数。
println( BigDecimal(0.1) + BigDecimal(0.2) == BigDecimal(0.3) )//true
println(0.1 + 0.1==0.2)//true
大数问题
object Base031 {
def main(args: Array[String]): Unit = {
var a =2147483647
val b =1
// val c = (a + b) /2 //Bug
val c = a - (a-b)/2//高手算平均值
println(c)
//大数字做计算
//11111111111111*22222222222222
//val c:Double = 11111111111111111111111111111*1111111111111111111111111111
//val d = BigInt(*111111111111111111111111111111111*)*BigInt(*111111111111111111111111111)
// println(c)
// println(d)
if语句
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
例题:
输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大,输出 “RECTANGLE”;如果正方形面积大,输出 “SQUARE”,如果一样大,输出 “SAME”
object Base917 {
def main(args: Array[String]): Unit = {
print("请输入正方形的边长a: ")
val a = scala.io.StdIn.readDouble()
// 读取用户输入的长方形长和宽
print("请输入长方形的长b: ")
val b = scala.io.StdIn.readDouble()
print("请输入长方形的宽c: ")
val c = scala.io.StdIn.readDouble()
// 比较面积并输出结果
if (a * a > b * c) {
println("正方形面积大")
} else if (a * a < b * c) {
println("长方形面积大")
} else {
println("一样大")
}
}
}
案例输入正整数分数,输出对应的等级符号。规则如下:[90,100] 为 A 等;[80,89] 为 B 等;[70,79] 为 C 等;[60,69] 为 D 等;[0, 59] 为 E 等;
object Base9171 {
def main(args: Array[String]): Unit = {
print("请输入一个正整数: ")
val a = scala.io.StdIn.readDouble()
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")
} else{
println("输入的数有误")
}
}
}