十进制 二进制
1 1
2 10
3 11
4 100
5 101
6 110
object Base09 {
def main(args: Array[String]): Unit = {
// 位运算
println(s"4&5=${4&5}")
println(s"6&2=${6&2}") // 10 2
println(s"6|2=${6|2}") //110 6
}
}
结果
常用的位运算符如下:
1. & 按位与运算符。0&1 = 0, 1&0= 0 , 0&0 = 0, 1&1 = 1
2. | 按位或运算符。0|1 = 1, 1|0= 1 , 0|0 = 0, 1|1 = 1
3. ^ 按位异或运算符。0^1 = 1, 1^1= 0, 0^0 = 0
4. ~ 按位取反运算符
5. << 左移运算符。右边补零,放大。
6. >> 右移运算符。左边补零,缩小。
优先级顺序
1. 乘(*)除(/)模(%) > 加(+)减(-)
2. 算术(+-*/%) > 关系(><>=!=) > 赋值(=)
3. && >
示例
object Base10 {
def main(args: Array[String]): Unit = {
val result = 10 - 2 + 3 * 4 / 2
println(result) // 问题1
val a = true
val b = false
val c = false
println(a || b && c) // 问题2
}
}
结果
一种整数都有自己的表达范围,例如Int类型的最大值是2147483647,一旦超过了这个范围就会报错,或者是导致计算异常。
object Base12 {
def main(args: Array[String]): Unit = {
val a = 2147483647
val b = 1
val c = (a+b)/2
println(c)
}
}
结果
用BigInt(数字字符串)来解决这个问题。
object Base12 {
def main(args: Array[String]): Unit = {
val a = BigInt("123456789012345678901234567890")
val b = BigInt("987654321098765432109876543210")
println(a + b)
println(a * b)
或者改变方法
object Base12 {
def main(args: Array[String]): Unit = {
val a = 2147483647
val b = 1
val c=a-(a-b)/2
println(c)
}
}
Scala中的if语句的语法格式如下:
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
示例
输入一个正方形的边长(a)及一个长方形的长与宽(b、c),然后比较两个图形的面积。如果长方形面积大,输出 “RECTANGLE”;如果正方形面积大,输出 “SQUARE”,如果一样大,输出 “SAME”。
object Base15 {
def main(args: Array[String]): Unit = {
print("请输入正方形边长:")
val a=scala.io.StdIn.readInt()
print("请输入长方形长:")
val b=scala.io.StdIn.readInt()
print("请输入长方形宽:")
val c=scala.io.StdIn.readInt()
if (c*b>a*a){
println("RECTANGLE")
}
else if (c*b<a*a) {
println("SQUARE")
} else{
println("SAME")
}
}
}
结果
示例
输入正整数分数,输出对应的等级符号。规则如下:[90,100] 为 A 等;[80,89] 为 B 等;[70,79] 为 C 等;[60,69] 为 D 等;[0, 59] 为 E 等
object Base16 {
def main(args: Array[String]): Unit = {
//[案例]输入正整数分数,输出对应的等级符号。规则如下:[90,100] 为 A 等;[80,89] 为 B 等;[70,79] 为 C 等;[60,69] 为 D 等;[0, 59] 为 E 等
print("输入0~100的正整数:")
val sum=scala.io.StdIn.readInt()
if (sum>=90 && sum<=100) {
println("A等")
} else if (sum>=80 && sum<=89){
println("B等")
} else if (sum>=70 && sum<=79){
println("C等")
} else if (sum>=60 && sum<=69){
println("D等")
} else if (sum>=0 && sum<=59){
println("E等")
}else{
println("输入错误")
}
}
}