作者:看那个码农
公众号:看那个码农
上期内容介绍了Go语言学习之力扣-逆波兰表达式|Go主题月
- 逆波兰表达式
本篇内容将继续带领大家走进Go语言的世界。
1.本文简介
Go语言学习之力扣-颠倒二进制位
来源于:190. 颠倒二进制位
2.题目描述
颠倒给定的 32 位无符号整数的二进制位。
示例1:
输入: 00000010100101000001111010011100
输出: 00111001011110000010100101000000
解释: 输入的二进制串 00000010100101000001111010011100 表示无符号整数 43261596,
因此返回 964176192,其二进制表示形式为 00111001011110000010100101000000。
提示:
- 输入是一个长度为 32 的二进制字符串
2.思路与方法
- 将输入
num视为一个长为32的二进制串,从高往低枚举num的每一位; - 通过取余的形式判断是否为1;
- 同时新建一个新的二进制串
rev,如果num所在位数取余后结果为1,将1赋给rev。 - 这样一轮进行后,
rev左移,num右移,继续判断下一个数, - 最后完全输出
rev的结果即为颠倒二进制后的结果。
3.具体实现代码
func reverseBits(num uint32) uint32 {
var rev uint32=0
for i:=0;i<32;i++{
rev <<= 1
if num%2==1{
rev+=1
}
num >>= 1
}
return rev
}
力扣输出结果为:
如果你觉得这篇内容对你有帮助的话:
1、点赞支持下吧,让更多的人也能看到这篇内容
2、关注公众号:看那个码农,我们一起学习一起进步。