其實現思路以下:
ide
將目標數值進行末尾比特位摘取,將所摘取的bit位放到一個相同類型的末尾,目標數值bit位右移,相同類型bit位左移。
測試
C語言的位運算符:
blog
#include <stdio.h>//按位翻轉一個無符號××× unsigned int reverse_bit(unsigned int value) { unsigned int num = 0; int i = 0; for (i = 1; i < 32; i++) { num += value & 1; num <<= 1; value >>= 1; } return num; }
測試用例以下:
it
int main() { unsigned int num = 25; printf("%u", reverse_bit(num)); system("pause"); return 0; }
如 有不足之處,但願指正。io