函式返回值的二進位制位模式從左向右反轉

2021-08-18 19:43:39 字數 970 閱讀 5701

編寫函式:

unsigned int reverse_bit(unsigned int value);

這個函式的返回 值value的二進位制位模式從左到右翻轉後的值。

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

00000000000000000000000000011001

翻轉後:(2550136832)

10011000000000000000000000000000

程式結果返回:

2550136832

#define  _crt_secure_no_warnings

#include

#include

#include

unsigned

int reverse_bit(unsigned

int value)

return sum;

}int main()

如果沒有考慮到int 的範圍結果會出錯

int main()

第二種方法:

思路:在上乙個的程式中每次運算都呼叫了pow函式,增加了很多重複的操作,如果不用pow函式,那麼可以利用左移運算子將值左移,先求給定數的最後一位讓它與sum執行 『 | 』 操作,寫乙個迴圈就可以了。

#define  _crt_secure_no_warnings

#include

#include

int reverse_bit(int value)

return

sum;

} int main()

值得注意的是:

這個寫法的程式在寫的時候最大問題是i的迴圈次數,如果不在第一行加上sum = sum << 1;那麼當迴圈次數為32次輸入1和0時就會出現錯誤,從這個程式中我們要取很多極限的值去測試程式是否正確

利用位運算將整型值的二進位制位模式從左到右變換

目標 編寫函式unsigned int reverse bits unsigned int value 此函式的返回值是把value的二進位制位模式從左到右變換一下的值。例如,在32位機器上,25這個值包括下列各位 00000000000000000000000000011001 函式的返回值應為2...

二進位制位的翻轉函式

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

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

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