求逆轉乙個整數的二進位制表示

2021-06-20 18:28:33 字數 688 閱讀 4483

解法一:

這個容易理解。

[cpp]view plain

copy

//解法一

#define unsigned_bits_count 32

unsigned int

bitrev3(unsigned 

intinput)   

//我的格式,先不考慮符號問題

int reverse(int n)

return ret;}

解法二:

第一行**為奇偶位相互交換;第二行為以兩位為一單元,奇偶單元進行交換;第三行為以四位為一單元,奇偶單元進行交換;第四行為以八位為一單元,奇偶單元進行交換;最後一行為以十六位為一單元,奇偶單元進行交換。至此,32位反轉完成,演算法結束。

[cpp]view plain

copy

//解法二

unsigned int

bit_reverse(unsigned 

intn)    

解法三:

思路同解法二,但做了優化。

[cpp]view plain

copy

//解法三

unsigned rev(unsigned x)   

逆轉乙個整數的二進位制表示問題

解法一 這個容易理解。解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned int input 解法二 第一行 為奇偶位相互交換 第二行為以兩位為一單元,奇偶單元進行交換 第三行為以四位為一單元,奇偶單元進行交換 第四行為以八...

逆轉乙個整數的二進位制表示問題

解法一 這個容易理解。cpp view plain copy print?解法一 define unsigned bits count 32 unsigned int bitrev3 unsigned int input 解法一 define unsigned bits count 32 unsig...

整數的二進位制表示

目錄總結 整數的二進位制表示,需要區分正整數和負整數來看。看正整數的二進位制表示,就要先了解一下位權。十進位制 二進位制都有位權。以 123 為例 123 1 10 2 2 10 1 3 10 0。每個位置的位權都不一樣,十進位制從右到左,以 1 開始,依次乘 10 也就是說第 1 位為 1 第 2...