官术网_书友最值得收藏!

1.2.2 各種數(shù)制的轉(zhuǎn)換

由于計算機內(nèi)部使用二進制,要讓計算機處理十進制數(shù),必須先將其轉(zhuǎn)化為二進制數(shù)才能被計算機所接受,而計算機處理的結(jié)果又需還原為人們所習慣的十進制數(shù)。

1.二進制數(shù)轉(zhuǎn)換為十進制數(shù)

二進制數(shù)轉(zhuǎn)換為十進制數(shù)的方法就是將二進制數(shù)的每一位數(shù)按權(quán)系數(shù)展開,然后相加。即將二進制數(shù)按式(1-1)展開,然后進行相加,所得結(jié)果就是等值的十進制數(shù)。

【例1-3】把二進制數(shù)1101.01轉(zhuǎn)換為十進制數(shù)。

(1101.01)2=1×23+1×22+0×21+1×20+0×2-1+1×2-2

=8+4+0+1+0+0.25

=(13.25)10

2.十進制數(shù)轉(zhuǎn)換為二進制數(shù)

將十進制數(shù)轉(zhuǎn)換為二進制數(shù)是進制轉(zhuǎn)換間比較復雜的一種,也是與其他進制轉(zhuǎn)換的基礎。這里把整數(shù)和小數(shù)轉(zhuǎn)換分開討論。

(1)整數(shù)的轉(zhuǎn)換

十進制整數(shù)轉(zhuǎn)換為二進制整數(shù)的方法為除基取余法,即將被轉(zhuǎn)換的十進制數(shù)用2連續(xù)整除,直至最后的余數(shù)為0或1,然后將每次所得到的商按相除過程反向排列,結(jié)果就是對應的二進制數(shù)。

【例1-4】將十進制數(shù)173轉(zhuǎn)換為二進制數(shù)。

將173用2進行連續(xù)整除:

所以,(173)10=(10101101)2

(2)小數(shù)的轉(zhuǎn)換

十進制小數(shù)轉(zhuǎn)換為二進制小數(shù)的方法為乘基取整法,即將十進制數(shù)連續(xù)乘2得到進位,按先后順序排列進位就得到轉(zhuǎn)換后的小數(shù)。

【例1-5】將十進制小數(shù)0.8125轉(zhuǎn)換為相應的二進制數(shù)。

余數(shù)為0,轉(zhuǎn)換結(jié)束。所以,(0.8125)10=(0.1101)2

3.二進制數(shù)與八進制數(shù)的轉(zhuǎn)換

(1)二進制數(shù)轉(zhuǎn)換為八進制數(shù)

因為二進制數(shù)和八進制數(shù)之間的關系正好是2的3次冪,所以二進制數(shù)與八進制數(shù)之間的轉(zhuǎn)換只要按位展開就可以了。

【例1-6】將二進制數(shù)110100101.001011轉(zhuǎn)換為八進制數(shù)。

以小數(shù)點為界,分別將3位二進制對應1位八進制如下:

所以,(110100101.001011)2=(645.13)8

注意:從小數(shù)點開始,往左為整數(shù),最高位不足3位的,可以在前面補零;往右為小數(shù),最低位不足3位的,必須在最低位后面補0。

(2)八進制數(shù)轉(zhuǎn)換為二進制數(shù)

先將需要轉(zhuǎn)換的八進制數(shù)從小數(shù)點開始,分別向左和向右按每1位八進制對應3位二進制展開即得到對應的二進制數(shù)。

【例1-7】將八進制數(shù)357.264轉(zhuǎn)換為二進制數(shù)。

(357.264)8=(011101111.010110100)2

轉(zhuǎn)換后的二進制最高位和最低位無效的0可以省略。

4.二進制數(shù)和十六進制數(shù)之間的轉(zhuǎn)換

(1)二進制數(shù)轉(zhuǎn)換為十六進制數(shù)

轉(zhuǎn)換方法與前面所介紹的二進制數(shù)轉(zhuǎn)換為八進制數(shù)類似,唯一的區(qū)別是4位二進制對應1位十六進制,而且十六進制除了0~9這10個數(shù)符外,還用A~F表示它另外的6個數(shù)符。

【例1-8】將二進制數(shù)11000111.00101轉(zhuǎn)換為十六進制數(shù)。

從小數(shù)點開始,往左為整數(shù),最高位不足4位的,可以在前面補零;往右為小數(shù),最低位不足4位的,必須在最低位后面補0。所以,(11000111.00101)2=(0C7.28)16

注意:在給出十六進制數(shù)的前面加上“0”是因為這個十六進制數(shù)的最高位為字符C,用0作為前綴以示與字母區(qū)別。

(2)十六進制數(shù)轉(zhuǎn)換為二進制數(shù)

先將需要轉(zhuǎn)換的十六進制數(shù)從小數(shù)點開始,分別向左和向右按每1位十六進制對應4位二進制展開即得到對應的二進制數(shù)。

【例1-9】將十六進制數(shù)5DF.6A轉(zhuǎn)換為二進制數(shù)。

(5DF.6A)16=(010111011111.01101010)2

轉(zhuǎn)換后的二進制最高位和最低位無效的0可以省略。

5.十進制數(shù)與八進制數(shù)、十六進制數(shù)之間的相互轉(zhuǎn)換

表1-3列出了常用進制之間的轉(zhuǎn)換。只要按式(1-1)所給出的表達關系,就可以用數(shù)學方法證明并得到相應的轉(zhuǎn)換方法。通常,十進制和八進制及十六進制之間的轉(zhuǎn)換不需要直接進行,可用二進制作為中間量進行相互轉(zhuǎn)換。如要將一個十進制數(shù)轉(zhuǎn)換為相應的十六進制數(shù),可以先將十進制數(shù)轉(zhuǎn)換為二進制數(shù),然后直接根據(jù)二進制數(shù)寫出對應的十六進制數(shù),反之亦然。

表1-3 十進制、二進制、八進制、十六進制轉(zhuǎn)換表

主站蜘蛛池模板: 山东省| 诸城市| 苍山县| 阳信县| 叙永县| 雅江县| 禄丰县| 沧州市| 平邑县| 玉山县| 大理市| 墨玉县| 邹城市| 都匀市| 达拉特旗| 余姚市| 门头沟区| 彝良县| 丁青县| 右玉县| 湖口县| 屯门区| 德兴市| 定州市| 育儿| 思茅市| 光泽县| 清河县| 乐业县| 柯坪县| 永济市| 东莞市| 兴和县| 芜湖市| 蕉岭县| 涪陵区| 梁河县| 松原市| 前郭尔| 田东县| 彰武县|