我正在看一些代碼,輸出一個數字到二進制形式的前置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