Leetcode 190. 颠倒二进制位 解题思路及C++实现
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 190. 颠倒二进制位 解题思路及C++实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
解題思路:
使用移位運算和與運算,將32位二進制數(shù)n中的每一位取出來,然后將取出的0或1相應地進行右移操作,最終加和得到結果。
下面的程序中,循環(huán)執(zhí)行32次,每一次循環(huán),得到n的第 i 位數(shù),即 通過將 n 向右移 i 位,然后 與 1,得到tmp,再將tmp左移 31-i 位,加到res上,最終即可得到結果res。
?
class Solution { public:uint32_t reverseBits(uint32_t n) {int res = 0;for(int i = 0; i < 32; i++){int tmp = n >> i & 1;res += tmp << (31 - i);}return res;} };?
?
總結
以上是生活随笔為你收集整理的Leetcode 190. 颠倒二进制位 解题思路及C++实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Leetcode 169. 求众数 解题
- 下一篇: s3c2440移植MQTT