位运算:把10进制的数转换成二进制表示,其中一个数字
- 10进制 2进制
- 0 0
- 1 1
- 2 10
- 3 11
- 4 100
- 5 101
- 6 110
位运算
- ①:& 按位或运算符:0&1=0,0&0=0,1&1=0
- ②:||按位或运算符:0||1=1,0||0=0,1||1=0,,1||0=0
* &换位与运算符 0&0=0,1&0=0,1&1=1
* 6&2 ------>2
* 6 1 1 0
* 2 0 1 0
* &-------------------
* 1 0
*
* | 换位或运算符 0|1=1,1|0=1,0|0=0,1|1=1
* 6|2 ------>6
* 6 1 1 0
* 2 0 1 0
* |--------------------
* 1 1 0
* */
scala中运算符的优先级
- ①:先乘除,后加减
- ②:先&&后||(&&d的优先级比||高)
- ③:算术(+-*%)>关系(><=!=)>赋值(=)
object Base11 {
def main(args:Array[String]):Unit={
val result =10-2+3*4/2 // 14
println(result)
val a=true
val b=false
val c=false
println(a||b&&c) //true
}
}
scala中的精度问题
object Base13 {
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.1+0.1==0.2) //true
}
}
注:int类型中的最大整数是2147483647
object Base12 {
def main(args:Array[String]):Unit={
val a=2147483647
val b=1
val c=a-(a-b) /2
println(c)
//大数字字典运算
//11111111111111*22222222222222
val d=BigInt("1111111111111")*BigInt("22222222222222222222")
println(d)
}
}
if语句(分支结构)
object Base14 {
def main(args:Array[String]):Unit={
//1.获取用户输入的数字
//2.判断
//2.输出结果
print("请输入年龄")
val age=scala.io.StdIn.readInt()
if(age>=18){
println("成年")
}else{
println("未成年")
}
}
}
eg: 假设一个正方形的边长为a,一个长方形的长为b宽为c,判断正方形的面积大,还是长方形的面积大
object Base15 {
def main(args:Array[String]):Unit={
// 输入正方形的边长
println("请输入正方形的边长 a: ")
val a = scala.io.StdIn.readDouble()
// 输入长方形的长
println("请输入长方形的长 b: ")
val b = scala.io.StdIn.readDouble()
println("请输入长方形的宽 c: ")
val c = scala.io.StdIn.readDouble()
if(b*c>a*a){
println("长方形的面积大")
} else if(b*c<a*a){
println("正方形的面积大")
} else{
println("一样大")
}
}
}
eg: 输入正整数分数,输出对应的等级符号,规则如下:[90,100]为A等;[80,89]为B等;[70,79]为C等;[60,69]为D等;[0,59]为E等;
object Base16 {
def main(args: Array[String]): Unit = {
print("请输入一个正整数")
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等")
}else{
println("输入分数有误")
}
}
}