左右翻轉二進位制數 》繁瑣與精簡

2021-07-12 04:27:31 字數 776 閱讀 1869

實現:

//00000000000000000000000000011001

//10011000000000000000000000000000

這種翻轉

方法一和方法二思路大致一樣,可以方法二卻十分麻煩。

方法一(簡單)

#include#includeunsigned int  reverse_bit(unsigned int value)

return num;

}int main()

方法二(思想簡單但寫的十分複雜,我都不知道我咋想出來的)

#include#includeunsigned int zhishu(int x, int cishu)

int num_sing(int max)

else }

unsigned int fzsign(unsigned int a)

/*printf("%d\n", cishu);*/

int sings = num_sing(tmp);

int tmp2 = cishu;

cishu = cishu - 1;

while (tmp != sings)

num = num + sings;

num = num << (32 - tmp2);

return num;

}int main()

法二像不像大雜燴!!!

本文出自 「痕跡」 部落格,請務必保留此出處

二進位制翻轉

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

二進位制翻轉

有的時候我們為了方便對於低位進行操作,我們要把二進位制數翻轉過來,這樣可以避免使用大量的取模操作。直接入正題 我們要求 0,2 的區間中的每乙個翻轉。首先要知道的是什麼叫乙個 a 進製數的翻轉。我們以 2 進製為例,x x x x 它的翻轉就是 rev x x x x x x x x 我們考慮線性求...

二進位制 二進位制起源

現代通訊技術的基礎是二進位制編碼。早在1865年麥克斯韋總結出麥克斯韋方程組之前,美國人摩斯 morse 於1837年發明了摩斯電碼和有線電報。有線電報的出現,具有劃時代的意義 它讓人類獲得了一種全新的資訊傳遞方式,這種方式 看不見 摸不著 聽不到 完全不同於以往的信件 旗語 號角 烽火,這也是二進...