1. 程式人生 > >二進位制、十進位制、八進位制、十六進位制之間的轉換

二進位制、十進位制、八進位制、十六進位制之間的轉換

二進位制三位一組分開就是八進位制, 四位一組就是十六進位制

一、      二進位制與十進位制、八進位制、十六進位制的轉換

1、二進位制與十進位制的轉換

(1)二進位制轉十進位制

方法:“按權展開求和

【例】:整數轉換 

【例】:小數轉換  (0.101)2 = 1x2-1 +0x2-2 +1x2-3 = (0.625)10

規律:個位上的數字的次數是0,十位上的數字的次數是1......,依次遞增,而十

分位的數字的次數是-1,百分位上數字的次數是-2......,依次遞減。

 

(2)十進位制轉二進位制

十進位制整數轉二進位制數除以2取餘,逆序排列除二取餘法

【例】:

89÷2 ……1

44÷2 ……0

22÷2 ……0

11÷2 ……1

5÷2 ……1

2÷2 ……0

1

十進位制小數轉二進位制數乘以2取整,順序排列2取整法

注意:不是任何一個十進位制小數都能轉換成有限位的二進位制數。

【例】: (0625)10=(0101)2

0.625X2=1.25 ……1

0.25 X2=0.50 ……0

0.50 X2=1.00 ……1

 

2、二進位制與八進位制的轉換

(1)二進位制轉八進位制

從小數點開始,整數部分向左、小數部分向右,每3位為一組用一位八進位制數的數字表示,不足

3位的要用“0”補足3位,就得到一個八進位制數。

【例】:將二進位制的10110.0011轉換成八進位制:

0 1 0 1 1 0 . 0 0 1 1 0 0

2 6 . 1 4

即:(10110.00112 = 26.148

 

 (2)八進位制轉二進位制

把每一個八進位制數轉換成3位的二進位制數,就得到一個二進位制數。

【例】:將八進位制的37.416轉換成二進位制數:

3 7 4 16

011 111 100001 110

即:(37.4168 =11111.100001112

3、二進位制與十六進位制的轉換

十六進位制數字與二進位制數字的對應關係如下:

0000 -> 0 0100 -> 4 1000 -> 8 1100 -> C

0001 -> 1 0101 -> 5 1001 -> 9 1101 -> D

0010 -> 2 0110 -> 6 1010 -> A 1110 -> E

0011 -> 3 0111 -> 7 1011 -> B 1111 -> F

 

(1)二進位制轉十六進位制

二進位制數轉換成十六進位制數時,只要從小數點位置開始,向左或向右每四位二進位制劃分一組(不足四位數可補0),然後寫出每一組二進位制數所對應的十六進位制數碼即可。

 

【例】:將二進位制數1100001.111 轉換成十六進位制:

0110 0001 1110

6 1 E

即:(1100001.1112 =61.E16

 

(2)十六進位制轉二進位制

把每一個十六進位制數轉換成4位的二進位制數,就得到一個二進位制數。

【例】:將十六進位制數5DF.9 轉換成二進位制:

5 D F 9

0101 1101 1111 1001

即:(5DF.916 =10111011111.10012

二、      八進位制與十進位制的轉換

(1)八進位制轉十進位制

整體順序、小數點不變,個位乘80次方+十位乘81次方...=十進位制得數,即可。小數部分從左到右乘8的負一次方開始,以此類推。


(2)十進位制轉八進位制

       整體順序、小數點不變,整數部分除8,餘數倒著從左向右排,小數部分乘8,整數自左向右排。

整數部分:


小數部分:


三、      十六進位制與十進位制的轉換

(1)十六進位制轉十進位制

16進位制數的第0位的權值160次方,第1位的權值為161次方,第2位的權值為162次方……

 【例】:例:2AF5換算成10進位制: 5 * 16^0 + F * 16^1 + A* 16^2 + 2 * 16^3 = 10997

(2)十進位制轉十六進位制

16取餘,直到商為0為止