在計(jì)算機(jī)和其它數(shù)字系統(tǒng)中,最常使用得是二進(jìn)制數(shù),而人們?nèi)粘A?xí)慣于使用十進(jìn)制數(shù),所以,在數(shù)據(jù)處理過程中首先必須把十進(jìn)制數(shù)轉(zhuǎn)換成計(jì)算機(jī)能加工和處理的二進(jìn)制數(shù),經(jīng)計(jì)算機(jī)加工處理后,再將二進(jìn)制數(shù)的計(jì)算結(jié)果轉(zhuǎn)換成人們習(xí)慣的十進(jìn)制數(shù)。這里就存在一個(gè)不同數(shù)制的相互轉(zhuǎn)換問題。
1. 2. 1 二進(jìn)制數(shù)和十進(jìn)制數(shù)之間的轉(zhuǎn)換
二進(jìn)制數(shù)轉(zhuǎn)換成等值的十進(jìn)制數(shù)稱之為二-十轉(zhuǎn)換。轉(zhuǎn)換時(shí)只需將二進(jìn)制數(shù)寫成按權(quán)展開式,并將展開式中各乘積項(xiàng)的積算出來,然后各項(xiàng)相加,即可得到與該二進(jìn)制數(shù)等值的十進(jìn)制數(shù)。例如
(1001.11 )2= 1×23+0×22+0×21+1×20+1×2-1+1×2-2
= (9.75 )10
將十進(jìn)制數(shù)轉(zhuǎn)換成等值的二進(jìn)制數(shù)稱之為十-二轉(zhuǎn)換。轉(zhuǎn)換時(shí)時(shí),需要將待轉(zhuǎn)換的十進(jìn)制數(shù)分成整數(shù)部分和小數(shù)部分,并分別加以轉(zhuǎn)換成二進(jìn)制數(shù),然后再將兩部分加起來。
第一步先討論整數(shù)部分的轉(zhuǎn)換。假如有十進(jìn)制數(shù)(S)10,其等值的二進(jìn)制數(shù)為(anan-1…a0.a-1a-2…a-m )2,若將二進(jìn)制數(shù)按權(quán)展開,則有
(S )10= an2n+an-12n-1+…+a121+a020
= 2 (an2n-1+an-12n-2+…a1 )+a0 (1.2.1)
從上式表明,若將(S )10除以2,則得到的商為an2n-1+an-12n-2+…a1,余數(shù)則為a0。若再將得到的商依次除以2,所得的余數(shù)分別是a1、a2、…、an-1、an。
所以,當(dāng)需要將一個(gè)十進(jìn)制整數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)時(shí),十進(jìn)制數(shù)的整數(shù)部分采用“除2取余”法進(jìn)行轉(zhuǎn)換,即把十進(jìn)制整數(shù)除以2,取出余數(shù)1或0作為相應(yīng)二進(jìn)制數(shù)的最低位,把得到的商再除以2,再取余數(shù)1或0作為二進(jìn)制數(shù)的次低位,依次類推,繼續(xù)上述過程,直至商為0,最后所得余數(shù)為最高位。
例如,要將十進(jìn)制整數(shù)157轉(zhuǎn)換為二進(jìn)制整數(shù),就要把它寫成如下形式:

第二步討論小數(shù)部分的轉(zhuǎn)換。
若(S )10是一個(gè)十進(jìn)制小數(shù),對(duì)應(yīng)的二進(jìn)制小數(shù)為(0.a-1a-2a…a-m )2,則有
(S )10= a-12-1+a-22-2+…+a-m2-m (1.2.2)
將上式兩邊同乘以2得到
2 (S )10= a-1+ (a-22-1+a-32-2+…+a-m2-m+1 )
從結(jié)果可以看出,將小數(shù)(S )10乘以2所得乘積的整數(shù)部份即a-1。
同理,將乘積的小數(shù)部分再乘以2又可得
2 (a-22-1+a-32-2+…+a-m2-m+1 )= a-2+ (a-32-1+…+a-m2-m+2 )
即可得乘積的整數(shù)部份a-2。
以此類推,將每次乘2后所得的乘積的小數(shù)部分再乘以2后,便可求出二進(jìn)制小數(shù)的每一位。
例1.2.1將(0.8125 )10化為二進(jìn)制小數(shù)
解:

所以(0.8125 )10= (0.1101 )2
1.2. 2 八進(jìn)制數(shù)、十六進(jìn)制數(shù)與二進(jìn)制數(shù)的轉(zhuǎn)換
八進(jìn)制數(shù)的基數(shù)是8 (8=23 ),十六進(jìn)制數(shù)的基數(shù)為16 (16=24 )。由于二進(jìn)制數(shù)、八進(jìn)制數(shù)和十六進(jìn)制數(shù)之間具有2的整指數(shù)倍的關(guān)系,因而可十分方便地直接進(jìn)行轉(zhuǎn)換。
將二進(jìn)制整數(shù)轉(zhuǎn)換成八進(jìn)制或十六進(jìn)制整數(shù)的方法是:從右邊第一位起,分別向左按3位(轉(zhuǎn)換成八進(jìn)制)或4位(轉(zhuǎn)換成十六進(jìn)制) 分組,最后不滿3位或4位的,則需加0。將每組以對(duì)應(yīng)的八進(jìn)制數(shù)或十六進(jìn)制數(shù)代替,即為等值的八進(jìn)制數(shù)和十六進(jìn)制數(shù)。例如
則 (10011101 )2 = (010,011,101 )2= (235 )8
= (1001,1101 )2 = (9C )16
將八進(jìn)制數(shù)或十六進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)時(shí),可按上述方法的為相反過程進(jìn)行,即將每一位八進(jìn)制數(shù)或十六進(jìn)制數(shù)分別轉(zhuǎn)換成3(或4)位二進(jìn)制數(shù),在按高位到低位組合起來。
