190. 颠倒二进制位
生活随笔
收集整理的這篇文章主要介紹了
190. 颠倒二进制位
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
?
代碼
class Solution { public:uint32_t reverseBits(uint32_t n) {n=(n>>16)|(n<<16);n=((n&0xff00ff00)>>8)|((n&0x00ff00ff)<<8);n=((n&0xf0f0f0f0)>>4)|((n&0x0f0f0f0f)<<4);n=((n&0xcccccccc)>>2)|((n&0x33333333)<<2);n=((n&0xaaaaaaaa)>>1)|((n&0x55555555)<<1);return n;// for 8 bit binary number abcdefgh, the process is as follow:// abcdefgh -> efghabcd -> ghefcdab -> hgfedcba} };?
思路
步驟:
1、將n的左邊16位和右邊16位進行交換。
2、將n的左邊16位中的左邊8位和右邊8位交換,右邊16位同理。
3、將......左邊8位中的左邊4位和右邊4位交換....
?
所以可以基本明白這種交換的方式就是每次先交換一半,然后再交換這兩個一半中的一半,直到交換到1位。
轉載于:https://www.cnblogs.com/lizhenghao126/p/11053613.html
總結
以上是生活随笔為你收集整理的190. 颠倒二进制位的全部內容,希望文章能夠幫你解決所遇到的問題。