首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于java中位运算的有关问题,求教,为什么255<<32的结果就是255本身

2012-12-27 
关于java中位运算的问题,求教,为什么25532的结果就是255本身啊以下是运算结果255的二进制结果:11111111(

关于java中位运算的问题,求教,为什么255<<32的结果就是255本身啊
以下是运算结果
255的二进制结果:11111111
(255<<8)=65280
(255<<8)的二进制结果=1111111100000000
(255<<16)=16711680
(255<<16)的二进制结果=111111110000000000000000
(255<<24)=-16777216
(255<<24)的二进制结果=11111111000000000000000000000000
(255<<32)=255
(255<<32)的二进制=结果11111111
(255<<40)=65280
(255<<40)的二进制结果=1111111100000000
为什么位左移超过32就重复了呢?
[解决办法]
java的<<如果移动的位数超过了该类型的最大位数,那么编译器会对移动的位数取模。如对int型移动33位,实际上只移动了33%32=1位。

热点排行
Bad Request.