下面兩個代碼是該方法可以反轉無符號32位整數的位。但是下面兩個代碼有什麼區別? 爲什麼第一個代碼是錯誤的,第二個代碼是正確的。 我看不出這兩者的區別。無符號整數的反向位
public int reverseBits(int n) {
int result = 0;
for (int i = 0; i < 32; i++) {
result = result << 1 | (n & (1 << i));
}
return result;
}
public int reverseBits(int n) {
int result = 0;
for (int i = 0; i < 32; i++) {
result = result << 1 | ((n >> i) & 1);
}
return result;
}
感謝您的幫助。