颠倒给定的 32 位无符号整数的二进制位。
对于这个题目的类型有所误解,所以做的答案有些不对,首先将十进制数转换为二进制再转换为十进制,可能未理解题目的意思
func reverseBits(num uint32) (res uint32) {
var result []uint32
for num != 0 {
result = append(result, num%2)
num = num / 2
}
var mul uint32 = 0
for i := len(result)-1;i>=0;i--{
res += result[i] * mul
mul *= 2
}
return
}
测试运行时,发现完全错误,看了官方答案,原来是我理解错了
func reverseBits(num uint32) (res uint32) {
for i :=0;i<32 && num>0;i++{
res |= num & 1 << (31-i)
num = num >> 1
}
return
}