我正在看一些代码,输出一个数字到二进制形式的前置0。Java位操作 - (num >> = 1)做什么?
byte number = 48;
int i = 256; //max number * 2
while((i >>= 1) > 0) {
System.out.print(((number & i) != 0 ? "1" : "0"));
}
并且不理解i >> = 1是什么。我知道我>> 1向右移动了1位,但不明白“=”和AFAIK的作用,因此无法搜索“>> =”来查明它的含义。
稍微改进是'while((i >>> = 1)!= 0)',因为如果你给它''= 1 << 31',当前循环不会做任何事情,并且你永远不会打印出最高位的一个32位数字。 – 2011-04-08 07:42:10