1.
因为byte类型的数在内存里占8位(int是32位), 表数范围是-128~127 233>127,强制转换成byte时就溢出了
强制转换过程是这样的
iValue 233:
00000000000000000000000011101001
bValue:
11101001
左边第一位是符号位,为1,也就是个负数,负数在计算机里是以补码的形式存在的,需要换算成原码
11101001 补码减1=反码
11101000 按位取反成为原码(符号位不变)
10010111 原码=-23
2.
"/"除法运算时,两个运算数有1个是浮点数(double),或者2个都是,结果也是浮点数,而且允许除数是0或0.0,得到结果是无穷大或负无穷大
5/0 除零异常
5/0.0 Infinity(正无穷)
-5/0.0 -Infinity(负无穷)
5.0/0 Infinity(正无穷)
5.0/0.0 Infinity(正无穷)
|