int a=(byte)128;为什么a的值是-128?

来源:百度知道 编辑:UC知道 时间:2024/07/07 03:48:46
我知道这是数字溢出,但为什么值是-128而不是其他的数?

byte的表示范围是-128到+127,128的二进制表示是0000000010000000,若将其强制转换为byte型,则只留下10000000,即-128

因为byte最大是127,根据计算机计算原理,如果超出,他会返回到一个最小的值上去,即:-128

这个就好像是一个数字环境,数字环的结构式这样的:
-128,-127,-126,......0,1,2,3,......126,127,-128,-127,-126

大致意思就是这样

楼主采纳我的答案吧..哈哈哈

128第一位是0,加个BYTE 一位,第一位就变成1
1是负的,,,,就变成-128了

补位