JAVA中整型的储存和左右移位运算
JAVA中整型的存储和左右移位运算
byte,1个字节8位, -128 ~ 127之间,首位表示正负,0为正,1为负,0111,1111表示127,-127为127取反1000,0000,再加1,即1000,0001为-127,-127减1得-128,所以1000,0000表示-128,对它减1取反得到它自身。
short,2个字节,-1 * 2的15次方 ~ 2的15次方减1之间,参考byte的表示法。
int,4个字节,-1 * 2的31次方 ~ 2的31次方减1之间。
long,8个字节,-1 * 2的63次方 ~ 2的63次方减1之间。
<<左位移,所有的位左移,右面补0,其效果相当于乘以2,但是要注意溢出的情况,byte和short左移的结果为int。
>>右位移,所有的位右移,左面补0,其效果相当于除以2并舍弃余数。