【发布时间】:2014-10-24 06:07:03
【问题描述】:
我想做左移但用零填充,就像
int number = 20 >>> 10 = ( 0000 0000 0000 0000 0000 0000 0001 0100 )
int number = 20 >>> 32 = ( 0000 0000 0000 0000 0000 0000 0000 0000 )
我想对左移做同样的事情,因为没有运算符
int number = 20 << 32 = 0000 0000 0000 0000 0000 0000 0001 0100 ;
我想像 >>> 运算符一样用零填充它。那么我该怎么做呢?
【问题讨论】:
-
这个不清楚;
>>> 32和<< 32都没有任何效果,那你到底在问什么? -
您说过
20 >>> 32可以让您全神贯注 (0000 0000 0000 0000 0000 0000 0000 0000)。我没有得到所有位,我得到0001 0100。 -
阅读spec:如果左侧操作数的提升类型为int,则仅将右侧操作数的最低五个位用作移位距离。如果左侧操作数的提升类型为长,则仅使用右侧操作数的最低六位作为移位距离。