解法一:
這個容易理解。
[cpp]view plain
copy
print?
//解法一
#define unsigned_bits_count 32
unsigned int bitrev3(unsigned int input)
//解法一
#define unsigned_bits_count 32
unsigned int bitrev3(unsigned int input)
解法二:
第一行**為奇偶位相互交換;第二行為以兩位為一單元,奇偶單元進行交換;第三行為以四位為一單元,奇偶單元進行交換;第四行為以八位為一單元,奇偶單元進行交換;最後一行為以十六位為一單元,奇偶單元進行交換。至此,32位反轉完成,演算法結束。
[cpp]view plain
copy
print?
//解法二
unsigned int bit_reverse(unsigned int n)
//解法二
unsigned int bit_reverse(unsigned int n)
解法三:
思路同解法二,但做了優化。
[cpp]view plain
copy
print?
//解法三
unsigned rev(unsigned x)
//解法三
unsigned rev(unsigned x)
本文出自:
逆轉乙個整數的二進位制表示問題
解法一 這個容易理解。解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned int input 解法二 第一行 為奇偶位相互交換 第二行為以兩位為一單元,奇偶單元進行交換 第三行為以四位為一單元,奇偶單元進行交換 第四行為以八...
求逆轉乙個整數的二進位制表示
解法一 這個容易理解。cpp view plain copy 解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned intinput 我的格式,先不考慮符號問題 int reverse int n return ret 解法二...
整數的二進位制表示
目錄總結 整數的二進位制表示,需要區分正整數和負整數來看。看正整數的二進位制表示,就要先了解一下位權。十進位制 二進位制都有位權。以 123 為例 123 1 10 2 2 10 1 3 10 0。每個位置的位權都不一樣,十進位制從右到左,以 1 開始,依次乘 10 也就是說第 1 位為 1 第 2...