Java中的int型数据做移位操作后,只有数值有段的低5为才能用,long型只有低6位才有用,帮忙解释下。

 我来答
blacklong
2013-08-27 · TA获得超过1500个赞
知道大有可为答主
回答量:2745
采纳率:0%
帮助的人:1219万
展开全部
那得看你移位了多少个位,Int型4个字节,32位,去掉一个符号位,还有31位呢~~
两厢遗忘
2013-08-27 · TA获得超过629个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:556万
展开全部
防止移位超过int型所具有的位数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
又做同一梦
2017-09-09
知道答主
回答量:6
采纳率:0%
帮助的人:6166
展开全部
int value = Integer.parseInt(“00001111101001011111000010101100″,2);//即value=262533292
value <<= -38
若是对int的值移负数位,java会截取那个负数的低5位。
-38的二进制表示是:11111111111111111111111111011010,截取低5位得:11010,这个数是26,也就是说:
value <<= -38 等价于 value <<= 26,得到的二进制是10110000000000000000000000000000,首位为1,
所以该二进制是补码,换成其绝对值的源码为01010000000000000000000000000000,对应的十进制为1342177280,
加上负号就是-1342177280。
对于int是取低5位,对于long是取低6位
原贴(转):http://www.ticmy.com/?p=46
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式