将(-128~127)范围外的数据强转为byte类型时,程序会自动截取二进制的后八位,再考虑正负补码的问题,再转换为十进制数值输出,如果我们手动这样计算起来有些麻烦了,这里讲一个简易算法,看下图:
我们把整个数轴当作-128~127的无限循环,然后在对应着正常数轴看
比如说200,强转后就是-56,
再比如524,强转后就是12,
再再比如766,强转后就是-2
看出规律了吗??
一个超出-128 ~ 127范围的数,强转后就是(其本身-与其相差最小的256的倍数)。
(byte)200=200-256=-56;
(byte)524=524-512=12;
(byte)766=766-768=-2;
Java_byte类型数据超过(-128~127)范围输出值简易算法
最新推荐文章于 2023-07-28 18:16:34 发布