byte的范围是-128 ~ 127 不能表示出 129
-127和+129的效果等价
在计算机中数值都是以二进制补码形式存储的,
byte类型只能存储8位二进制数,其中最高位是符号位,符号位为0是正数,符号位为1是负数。
符号位为0正数范围是
补码:0000 0000 表示0
补码:0000 0001 表示1
........
补码:0111 1110 表示126
补码:0111 1111 表示127
符号位为1负数范围是
补码:1000 0000 表示 -128
补码:1000 0001 表示 -127
........
补码:1111 1110 表示 -2
补码:1111 1111 表示 -1
如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮
本来,byte类型的num5+2会自动向上转型 结果为129,但是他又吧这个结果强制向下转型为bate的值,baty类型的最大值为127,输出的结果自然会失真,具体怎么个失真法,前面哪位大佬解释的很清楚了