一、Java的左右移位操作
将10进制转化为2进制进行移位操作,例:
<span style="white-space:pre"> </span>int i=10>>2;
<span style="white-space:pre"> </span>System.out.println(i);
结果为1;即将1010(2进制)向右移位3次,空位由0填充,变为0001(2进制),转为十进制为1
注:溢出的部分不再考虑 可以将右移位操作看做整除操作,结果取整数,如10>>2等价于10/2^3=1
二、数据转换时的溢出问题
将大范围数据类型强制转换为小数据类型时容易发生溢出(这里不再阐述数据类型转换),溢出后的结果为 原操作数%小数据类型的最大范围 然后得出的数从小数据类型的0处向后遍历,得出的结果即为溢出后显示的结果 例:
<span style="white-space:pre"> </span>int i=128;
<span style="white-space:pre"> </span>byte j=(byte)i;
<span style="white-space:pre"> </span>System.out.println(j);
j的结果为-128,如果i+1,则j=-127以此类推