對於整數部分,用被除數反覆除以2,除第一次外,每次除以2均取前一次商的整數部分作被除數並依次記下每次的餘數。另外,所得到的商的最後一位餘數是所求二進位制數的最高位。
對於小數部分,採用連續乘以基數2,並依次取出的整數部分,直至結果的小數部分為0為止。故該法稱「乘基取整法」。
10進製數轉換成二進位制數,這是乙個連續除以2的過程:
把要轉換的數,除以2,得到商和餘數,
將商繼續除以2,直到商為0。最後將所有餘數倒序排列,得到數就是轉換結果。
比如要轉換6為二進位制數。
「把要轉換的數,除以2,得到商和餘數」。
那麼:
要轉換的數是6, 6 ÷ 2,得到商是3,餘數是0。
「將商繼續除以2,直到商為0……」
現在商是3,還不是0,所以繼續除以2。
那就: 3 ÷ 2, 得到商是1,餘數是1。
「將商繼續除以2,直到商為0……」
現在商是1,還不是0,所以繼續除以2。
那就: 1 ÷ 2, 得到商是0,餘數是1
「將商繼續除以2,直到商為0……最後將所有餘數倒序排列」
現在商已經是0。
三次計算依次得到餘數分別是:0、1、1,將所有餘數倒序排列,那就是:110了!
6轉換成二進位制,結果是110。
二進位制數轉換為十進位制數
二進位制數第0位的權值是2的0次方,第1位的權值是2的1次方……
所以,設有乙個二進位制數:0110 0100,轉換為10進製為:
下面是豎式:
0110 0100 換算成 十進位制
" ^ " 為次方
第0位 0 * 2^0 = 0
第1位 0 * 2^1 = 0
第2位 1 * 2^2 = 4
第3位 0 * 2^3 = 0
第4位 0 * 2^4 = 0
第5位 1 * 2^5 = 32
第6位 1 * 2^6 = 64
第7位 0 * 2^7 = 0 +
公式:第n位2^(n)
用橫式計算為:
0 * 2 ^ 0 + 0 * 2 ^ 1 + 1 * 2 ^ 2 + 0 * 2 ^ 3 + 0 * 2 ^ 4 + 1 * 2 ^ 5 + 1 * 2 ^ 6 + 0 * 2 ^ 7 = 100
0乘以多少都是0,所以我們也可以直接跳過值為0的位:
1 * 2 ^ 2 + 1 * 2 ^ 5 + 1 * 2 ^ 6 = 100
10進製數轉換成8進製的方法,和轉換為2進製的方法類似,唯一變化:除數由2變成8。
如何將十進位制數120轉換成八進位制數。
用**表示:
120÷8商15餘0
15÷8商1餘7
1÷8商0餘1
120轉換為8進製,結果為:170。
八進位制就是逢8進1。
八進位制數採用 0~7這八數來表達乙個數。
八進位制數第0位的權值為8的0次方,第1位權值為8的1次方,第2位權值為8的2次方……
例:1507,轉換為十進位制為:
用豎式表示:
1507換算成十進位制。
第0位 7 * 8^0 = 7
第1位 0 * 8^1 = 0
第2位 5 * 8^2 = 320
第3位 1 * 8^3 = 512
同樣,我們也可以用橫式直接計算:
7 * 8^0 + 0 * 8^1 + 5 * 8^2 + 1 * 8^3 = 839
結果是,八進位制數 1507 轉換成十進位制數為 839
10進製數轉換成16進製制的方法,和轉換為2進製的方法類似,唯一變化:除數由2變成16。
同樣是120,轉換成16進製制則為:
120÷16商7餘8
7÷16商0餘7
120轉換為16進製制,結果為:78。
16進製制就是逢16進1,但我們只有0~9這十個數字,所以我們用a,b,c,d,e,f這六個字母來分別表示10,11,12,13,14,15。字母不區分大小寫。
十六進製制數的第0位的權值為16的0次方,第1位的權值為16的1次方,第2位的權值為16的2次方……
在第n(n從0開始)位上,如果是是數 x (x 大於等於0,並且x小於等於 15,即:f)表示的大小為 x * 16的n次方。
例有乙個十六進數 2af5, 那麼如何換算成10進製
用豎式計算:
2af5換算成10進製:
第0位: 5 * 16^0 = 5
第1位: f * 16^1 = 240
第2位: a * 16^2 = 2560
第3位: 2 * 16^3 = 8192 +
直接計算就是:
5 * 16^0 + f * 16^1 + a * 16^2 + 2 * 16^3 = 10997
(別忘了,在上面的計算中,a表示10,而f表示15)
現在可以看出,所有進製換算成10進製,關鍵在於各自的權值不同。
十進數 1234 為什麼是 一千二百三十四?算式:
1234 = 1 * 10^3 + 2 * 10^2 + 3 * 10^1 + 4 * 10^0
(11001.101)(二)
整數部分: 從後往前每三位一組,缺位處用0填補,然後按十進位制方法進行轉化, 則有:
001=1
011=3
然後我們將結果按從下往上的順序書寫就是:31,那麼這個31就是二進位制11001的八進位制形式
小數部分: 從前往後每三位一組,缺位處用0填補,然後按十進位制方法進行轉化, 則有:
101=5
然後我們將結果部分按從上往下的順序書寫就是:5,那麼這個5就是二進位制0.101的八進位制形式
小數部分
所以:(11001.101)(二)=(31.5)(八)
(31.5)(八)
整數部分:從後往前每一位按十進位制轉化方式轉化為三位二進位制數,缺位處用0補充 則有:
1---->1---->001
3---->11
然後我們將結果按從下往上的順序書寫就是:11001,那麼這個11001就是八進位制31的二進位制形式
小數部分:從前往後每一位按十進位制轉化方式轉化為三位二進位制數,缺位處用0補充 則有:
5---->101
然後我們將結果按從下往上的順序書寫就是:101,那麼這個101就是八進位制5的二進位制形式
所以:(31.5)(八)=(11001.101)(二)
二進位制和十六進製制的互相轉換比較重要。
乙個二進位制數:1111,它是多少呢?
可以要這樣計算:1 * 2^0 + 1 * 2^1 + 1 * 2^2 + 1 * 2^3 = 1 * 1 + 1 * 2 + 1 * 4 + 1 * 8 = 15。
也可以這樣計算1111才4位,所以我們必須直接記住它每一位的權值,並且是從高位往低位記,:8、4、2、1。即,最高位的權值為2^3 = 8,然後依次是 2^2 = 4,2^1=2, 2^0 = 1。
記住8421,對於任意乙個4位的二進位制數,我們都可以很快算出它對應的10進製值。
僅4位的2進製數 快速計算方法 十進位制值 十六進值
1111 = 8 + 4 + 2 + 1 = 15 f
1110 = 8 + 4 + 2 + 0 = 14 e
1101 = 8 + 4 + 0 + 1 = 13 d
1100 = 8 + 4 + 0 + 0 = 12 c
1011 = 8 + 0 + 2+ 1 = 11 b
1010 = 8 + 0 + 2 + 0 = 10 a
1001 = 8 + 0 + 0 + 1 = 9 9
0001 = 0 + 0 + 0 + 1 = 1 1
0000 = 0 + 0 + 0 + 0 = 0 0
二進位制數要轉換為十六進製制,就是以4位一段,分別轉換為十六進製制。
上行為二制數,下面為對應的十六進製制:
1111 1101 , 1010 0101 , 1001 1011
f d , a 5 , 9 b
若當我們看到 fd時,將它轉換為二進位制數呢?
先轉換f:
看到f,我們需知道它是15,然後15如何用8421湊呢?應該是8 + 4 + 2 + 1,所以四位全為1 :1111。
接著轉換 d:
看到d,知道它是13,13如何用8421湊呢?應該是:8 + 4 + 1,即:1101。
所以,fd轉換為二進位制數,為: 1111 1101
由於十六進製制轉換成二進位制相當直接,所以,我們需要將乙個十進位制數轉換成2進製數時,也可以先轉換成16進製制,然後再轉換成2進製。
例十進位制數 1234轉換成二制數,如果要一直除以2,直接得到2進製數,需要計算較多次數。所以我們可以先除以16,得到16進製制數:
1234÷16 商77餘 2
77÷16 商4 餘13 (d)
4 ÷16商 0餘 4
結果16進製為: 0x4d2
然後我們可直接寫出0x4d2的二進位制形式: 0100 1101 0010。
其中對映關係為:
0100 -- 4
1101 -- d
0010 -- 2
如果乙個二進位制數很長,我們需要將它轉換成10進製數時,除了前面學過的方法是,我們還可以先將這個二進位制轉換成16進製制,然後再轉換為10進製。
進製之間轉換
簡介 二進位制轉換 二進位制轉八進位制 將二進位制從右至左,三個為一組,不夠左邊填0補齊,按權相加,拼接得到8進製 二進位制轉10進製 將二進位制數直接按權相加 二進位制轉16進製制 將二進位制從右至左,四個為一組,不夠左邊補0,按權相加,拼接得到10進製 轉為二進位制 八進位制轉二進位制 每乙個位...
進製之間轉換
明確乙個概念,即所謂的16進製制,10進製,2進製,只是一種整型數值的表示方法表示方法,同乙個數值可以有的16進製制,10進製,2進製的表示,也可以使用16進製制,10進製,2進製來建立同乙個數值。並且一般在一定範圍內,不同方式表示的同乙個數字在記憶體中的儲存結構也是相同的。整形類數值根本就沒有進製...
進製轉換(2 16進製制之間任意進製轉換)
進製轉換 描述在16進製制中,大寫字母a代表10,b代表11,f代表15。請將x進製的數字a轉化為y進製,並輸出。輸入輸入分三行,第一行乙個數字x 2 x 16 第二行乙個數字y 2 y 16 第三行乙個數字a a最長6位 輸出輸出x進製的a的y進製表示。輸入樣例1 10 24輸出樣例1 100輸出...