您的位置:首页 > 编程语言 > Java开发

Java左右移位操作和数据类型转换时的溢出问题

2016-07-12 20:01 1491 查看
一、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以此类推
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: