首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

LeetCode-算法-位运算-第14天

思路:for i in range(0,32)表示循环次数32次。(n&1)之前了解过,只保留当前n最右侧一位,(n&1)<<(31-i),的意思是将最右侧一位左移(31-i)。此时rev按位|与,从而使最高位获取到n最右侧一位。同理,第二次循环则是左侧第二位获取n的右侧第二位。 这里以8位的二进制,则相对应的为(n&1)<<(7-i)来举个例子: 第一次循环n=181二进制1011 0101,n&1=0000 0001,通过左移位7位,可以看出变为1000 0000,此处的1是1011 0101的最后一位的1。最后rev 0000 0000 与1000 0000按位与,则rev=1000 0000。之后n=n>>1=0101 1010。 第二次循环n&1=0000 0000通过左移7-i=6位,则变为0000 0000,最后与rev 1000 0000按位与则rev=1000 0000,n=n>>1=0010 1101。最终通过循环结束得到rev为1010 1101。

01
领券