求乙個數的二進位制從左到右翻轉後的值

2021-08-05 21:03:14 字數 647 閱讀 3306

在32位機器上25這個值包含下列各位:

00000000000000000000000000011001

翻轉後:(2550136832)

10011000000000000000000000000000

首先要求乙個數的二進位制,然後把它存入陣列中,n&1就是這個數最低位的二進位制,然後把n右移一位可以求出倒數第二位的二進位制,不斷進行迴圈,直到求出n的最高位的二進位制。次時陣列中存的就是這個數由低位到高位的二進位制,只需把這個數轉換為10進製即可。轉換10進製,最低位乘以2的0次方,最高位乘以2的31次方就可求出10進製數。**如下

#include

#include

#include

unsigned

int reverse_bit(unsigned

int value)

; int i = 0;

unsigned

int tmp = 0;

unsigned

int sum = 0;

for (i = 0; i < 32; i++)

for (i = 0; i <32; i++)

return sum;

}int main()

二進位制位模式從左到右的翻轉

編寫函式 unsigned int reverse bit unsigned int value 這個函式的返回 值value的二進位制位模式從左到右翻轉後的值。如 在32位機器上25這個值包含下列各位 00000000000000000000000000011001 翻轉後 2550136832 ...

轉換成二進位制翻轉乙個數

實現函式unsigned int reverse bit unsigned int value 這個函式的返回值是value的二進位制位模式從左到右翻轉後的值。如 在32位機器上25這個值包含下列各位 00000000000000000000000000011001 翻轉後 2550136832 1...

將乙個數的二進位制位進行翻轉

在學習redis原始碼的時候,看到了這段 很少寫blog,不太會表達自己的觀點。static unsigned long rev unsigned long v return v 舉乙個例 所有的數都用二進位制表示 假設v 11001010,unsigned long為1個位元組 方便 s 4 ma...