func uint32_to_bin_s(n uint32) string {
var b string
for ;n!=0; {
if n%2==1 {
n--
b = "1" + b
} else {
b = "0" + b
}
n /= 2
}
for ;len(b)<32; {
b = "0" + b
}
return b
}
func reverseBits(num uint32) uint32 {
b := uint32_to_bin_s(num)
var ans uint32
var p uint32 = 1
for i := 0; i<32; i, p = i+1, p*2 {
if b[i] == '1' {
ans += p
}
}
return ans
}