def reverse_bits(n):
result=0
for _ in range(32):
result=(result<<1)|(n&1); n>>=1
return result
public int reverseBits(int n){
int result=0;
for(int i=0;i<32;i++){
result=(result<<1)|(n&1); n>>>=1;
} return result;
}
Python >> vs Java >>> unsigned shift.
def reverse_bits(n):
result=0
for _ in range(32):
result=(result<<1)|(n&1); n>>=1
return result
public int reverseBits(int n){
int result=0;
for(int i=0;i<32;i++){
result=(result<<1)|(n&1); n>>>=1;
} return result;
}
1. For 32 bits 2. Add LSB to result 3. Shift