日期:2014-05-20  浏览次数:20687 次

麻烦详细解释一下下面的问题(前提是我知道超出了表示范围)
byte a=(byte)128;
byte b=(byte)(-129);
为什么a和b的值分别是-128,127 
还有,,,,,short b=130;a=(byte)b;a的值为什么是-126

------解决方案--------------------
byte:8位,有符号位,范围为-128~127
int 128 = 00000000 00000000 00000000 10000000
最低8位为10000000,即byte -128

int -129(补码) = 11111111 11111111 11111111 01111111
最低8位为01111111,即byte +127

short 130 同理