数据过大和溢出
简介
-
最大值的补码
0b 01111111_11111111_11111111_11111111
0b 0000000_0000000_0000000_0000000
0b 0000000_0000000_0000000_0000001 -
1的补码
0b 0000000_0000000_0000000_0000001
0b 01111111_11111111_11111111_11111110
0b 01111111_11111111_11111111_11111111 -
结果
0b 1000000_0000000_0000000_0000000
0b 01111111_11111111_11111111_11111111
0b 1000000_0000000_0000000_0000000
0b01111111=127
0b0000000=0
0b1000001=-1
0b1000010=-2
0b1000000=-128
127+1=-128
-128-1=127
基本类型的自动转换
简介
- long能转float 但是会多小数点
- bool 不参与运算
基本类型的强制转换
简介
- int转byte 是默认在编译器底层实现 byte b = 125;
编译器在底层发现可以转换 - 可能丢失精度
表达式类型的自动提升
简介
- 只是声明的时候底层帮int 25转byte
- 3 是 int, b4是byte声明,会编译错误
- byte = int + int 编译错误
- byte,short,char自动提升为int
算术运算符
简介
- 注意区分是字符还是字符串
- NaN 不等于自己
- 正无穷大 100.0/0.0
- 负无穷大 - 100.0/0.0