理解位運算轉化十進位製到二進位制

2021-10-25 18:31:33 字數 744 閱讀 7791

1、>>右移

如果乙個二進位制數右移1位,則最右邊的那一位,也就是最後一位就會被丟掉,但是同時倒數第二位就會變成最後一位。以此類推,右移2位、3位,可以理解為二進位制數的倒數第3位,倒數第4位被移到了末位。

例如,我們在對十進位制5進行「>>」時,即「5 >> 3」時,我們可把5看為「0101」,即位運算為「0101 >> 2」,結果為「0001」,即在前端補0的同時,倒數第3位的1被移到末位去了。

2、&與運算

如果我們有乙個二進位制數,我們要得到它的末位數,該怎麼辦呢。其實只要&1就行了。

0&1 = 0,1&1=1,1&0=0,0&0=0可見乙個二進位制位和&1,都會保留自己原來數值,&0則都會被化為0哦

5&1=0101 & 0001,答案為1;4&1 = 0100 & 1,答案為0。      拓展一下,如果想要得到最後兩位二進位制位,那應該 &3 。

6&3=0110&0011,答案為2,即「10」;

#include 

#include

using namespace std;

/*該**輸出了從0到15的二進位制數

*/int

main

(void

)}

注意:進行位運算時,最後的結果是十進位制數!!,如6 & 3的結果其實是2, >>結果也一樣是十進位制整數。

十進位制轉化為二進位制

今天我們來實現乙個有趣的小案例。要求 任意輸入乙個正十進位制數把它轉化為二進位制數輸出。我這裡使用了遞迴演算法 def transit num,binary 十進位制轉化為二進位制 param num 輸入的10進製 return none if num 2 remainder num 2 num ...

十進位製到二進位制轉換

description 進製轉換是計算機文化的基礎內容。使用程式將進製進行轉換,可以考查你對進製轉換的掌握程度。將乙個任意位數的十進位制數轉換為二進位制數你能夠做到嗎?input 首先是乙個正整數n n 100 表明本題有n個正整數需要轉換。然後是n行資料,每行表示乙個待轉換的正整數k 0 k 65...

13 3十進位制轉化為二進位制

05.檔名稱 07.完成日期 2013年 11月 08.版本號 v1.0 09.對任務及求解方法的描述部分 遞迴 10.輸入描述 十進位制 11.問題描述 遞迴法做二進位制轉換 12.程式輸出 二進位制 13.問題分析 像張玉老師說的像剝洋蔥先找到芯,在寫出第n 1或n 1與n 2與第n項的關係就很...