雖然計(jì)算機(jī)內(nèi)部使用二進(jìn)制來(lái)表示各種信息,但計(jì)算機(jī)與外部的交流仍采用人們熟悉和便于閱讀的形式。接下來(lái)我們將討論幾種進(jìn)位計(jì)數(shù)制之間的轉(zhuǎn)換問(wèn)題。
1 R進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
根據(jù)R進(jìn)制數(shù)的按位權(quán)展開(kāi)式,我們可以很方便地將R進(jìn)制數(shù)轉(zhuǎn)化為10進(jìn)制數(shù)。
【例1】將(110.101)2、(16.24)8、(5E.A7)16轉(zhuǎn)化為10進(jìn)制數(shù)。
(110.101)2 =1×22 +1×21 +0×20+1×2-1 +0×2-2 +1×2-3
=6.625
(16.24)8 =1×81 +6×80 +2×8-1 +4×8-2
=14.3125
(5E.A7)16 =5×161 +14×160 +10×16-1 +7×16-2
=94.6523
2 十進(jìn)制數(shù)轉(zhuǎn)化為R進(jìn)制數(shù)
將十進(jìn)制數(shù)轉(zhuǎn)化為R進(jìn)制數(shù),只要對(duì)其整數(shù)部分,采用除以R取余法,而對(duì)其小數(shù)部分,則采用乘以R取整法即可。
【例2】將(179.48)10化為二進(jìn)制數(shù)。
其中,(179)10=(10110011)2(0.48)10=(0.0111101)2(近似?。肺?
因此,(179.48)10=(10110011.0111101)2
從此例我們可以看出,一個(gè)十進(jìn)制的整數(shù)可以精確轉(zhuǎn)化為一個(gè)二進(jìn)制整數(shù),但是一個(gè)十進(jìn)制的小數(shù)并不一定能夠精確地轉(zhuǎn)化為一個(gè)二進(jìn)制小數(shù)。
【例3】將(179.48)10化為八進(jìn)制數(shù)。
其中,(179)10=(263)8 ,(0.48)10=(0.365)8(近似取3位)
因此,(179.48)10=(263.365)8
【例4】將(179.48)10化為十六進(jìn)制數(shù)。
其中,(179)10=(B3)16,(0.48)10=(0.7A)16(近似取2位)
所以,(179.48)10=(B3.7A)16
與十進(jìn)制數(shù)轉(zhuǎn)化為二進(jìn)制數(shù)類(lèi)似,當(dāng)我們將十進(jìn)制小數(shù)轉(zhuǎn)換為八進(jìn)制或十六進(jìn)制小數(shù)的時(shí)候,同樣會(huì)遇到不能精確轉(zhuǎn)化的問(wèn)題。
3 二進(jìn)制、八進(jìn)制、十六進(jìn)制數(shù)之間的轉(zhuǎn)換
因?yàn)?=23,所以需要3位二進(jìn)制數(shù)表示1位八進(jìn)制數(shù);而16=24,所以需要4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)。由此我們可以看出,二進(jìn)制、八進(jìn)制、十六進(jìn)制之間的轉(zhuǎn)換是比較容易的。
1)二進(jìn)制和八進(jìn)制數(shù)之間的轉(zhuǎn)換
二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)時(shí),以小數(shù)點(diǎn)為中心向左右兩邊延伸,每三位一組,小數(shù)點(diǎn)前不足三位時(shí),前面添0補(bǔ)足三位;小數(shù)后不足三位時(shí),后面添0補(bǔ)足三位。然后將各組二進(jìn)制數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)。
【例5】將(10110011.011110101)2化為八進(jìn)制。
(10110011.011110101)2 = 010 110 011.011110 101= (263.365)8
八進(jìn)制轉(zhuǎn)換成二進(jìn)制數(shù)則可概括為“一位拆三位”,即把一位八進(jìn)制寫(xiě)成對(duì)應(yīng)的三位二進(jìn)制,然后按順序連接起來(lái)即可。
【例6】將(1234)8化為二進(jìn)制數(shù)。
(1234)8=1 2 3 4=001 010 011100=(1010011100)2
2) 二進(jìn)制和十六進(jìn)制數(shù)之間的轉(zhuǎn)換
類(lèi)似于二進(jìn)制轉(zhuǎn)換成八進(jìn)制,二進(jìn)制轉(zhuǎn)換成十六進(jìn)制時(shí)也是以小數(shù)點(diǎn)為中心向左右兩邊延伸,每四位一組,小數(shù)點(diǎn)前不足四位時(shí),前面添0補(bǔ)足四位;小數(shù)點(diǎn)后不足四位時(shí),后面添0補(bǔ)足四位。然后,將各組的四位二進(jìn)制數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)。
【例7】將(10110101011.011101)2轉(zhuǎn)換成十六進(jìn)制數(shù)。
(10110101011.011101)2=0101 10101011.0111 0100 =(5AB.74)16
十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)時(shí),將十六進(jìn)制數(shù)中的每一位拆成四位二進(jìn)制數(shù),然后按順序連接起來(lái)。
【例8】將(3CD)16轉(zhuǎn)換成二進(jìn)制數(shù)。
(3CD)16=3 C D=0011 11001101=(1111001101)2
關(guān)于八進(jìn)制與十六進(jìn)制之間的轉(zhuǎn)換,通常先轉(zhuǎn)換為二進(jìn)制數(shù)作為過(guò)渡,再用上面所講的方法進(jìn)行轉(zhuǎn)換。
【例9】將(3CD)16轉(zhuǎn)換成八進(jìn)制數(shù)。
(3CD)16=3 C D=0011 11001101=(1111001101)2 =001 111 001 101=(1715)8