1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| package main
import ( "fmt" )
func main() { fmt.Println(reverseBits(0b00000010100101000001111010011100)) }
func reverseBits(num uint32) (ans uint32) { for i := 0; i < 32 && num > 0; i++ { // 最低位:num & 1 // 最低位左移 31 - i 位:从最高位到最低位 ans |= num & 1 << (31 - i) num >>= 1 } return }
|