- 計(jì)算機(jī)應(yīng)用基礎(chǔ)
- 邱炳城
- 1311字
- 2019-10-18 19:02:30
1.2.2 不同數(shù)制間的轉(zhuǎn)換
由于計(jì)算機(jī)內(nèi)部使用二進(jìn)制,要讓計(jì)算機(jī)處理十進(jìn)制數(shù),必須先將其轉(zhuǎn)化為二進(jìn)制數(shù)才能被計(jì)算機(jī)所接受,而計(jì)算機(jī)處理的結(jié)果又需還原為人們所習(xí)慣的十進(jìn)制數(shù)。
1.二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
二進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)的方法就是將二進(jìn)制數(shù)的每一位數(shù)按權(quán)系數(shù)展開,然后相加。即將二進(jìn)制數(shù)按式(1-1)展開,然后進(jìn)行相加,所得結(jié)果就是等值的十進(jìn)制數(shù)。
【例1-1】把二進(jìn)制數(shù)11011.01轉(zhuǎn)換為十進(jìn)制數(shù)。
(11011.01)2=1×24+1×23+0×22+1×21+1×20+0×2-1+1×2-2
=16+8+0+2+1+0+0.25
=(27.25)10
2.十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)是進(jìn)制轉(zhuǎn)換間比較復(fù)雜的一種,也是與其他進(jìn)制轉(zhuǎn)換的基礎(chǔ)。這里把整數(shù)和小數(shù)轉(zhuǎn)換分開討論。
(1)整數(shù)的轉(zhuǎn)換
十進(jìn)制整數(shù)轉(zhuǎn)換為二進(jìn)制整數(shù)的方法為“除基取余法”,即將被轉(zhuǎn)換的十進(jìn)制數(shù)用2連續(xù)整除,直至最后的商為0,然后將每次所得到的余數(shù)按相除過程反向排列,結(jié)果就是對應(yīng)的二進(jìn)制數(shù)。
【例1-2】將十進(jìn)制數(shù)102轉(zhuǎn)換為二進(jìn)制數(shù)。

所以,(102)10=(1100110)2
(2)小數(shù)的轉(zhuǎn)換
十進(jìn)制小數(shù)轉(zhuǎn)換為二進(jìn)制小數(shù)的方法為“乘基取整法”,即將十進(jìn)制數(shù)連續(xù)乘2得到進(jìn)位,按先后順序排列進(jìn)位就得到轉(zhuǎn)換后的二進(jìn)制小數(shù)。
【例1-3】將十進(jìn)制小數(shù)0.8125轉(zhuǎn)換為相應(yīng)的二進(jìn)制數(shù)。

所以,(0.8125)20=(0.1101)2
3.二進(jìn)制數(shù)與八進(jìn)制數(shù)的轉(zhuǎn)換
(1)二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)
因?yàn)槎M(jìn)制數(shù)和八進(jìn)制數(shù)之間的關(guān)系正好是2的3次冪,所以二進(jìn)制數(shù)與八進(jìn)制數(shù)之間的轉(zhuǎn)換只要按位展開就可以了。
【例1-4】將二進(jìn)制數(shù)10101111.01101轉(zhuǎn)換為八進(jìn)制數(shù)。
以小數(shù)點(diǎn)為界,分別將3位二進(jìn)制對應(yīng)1位八進(jìn)制如下:
010 101 111 011 010 二進(jìn)制
2 5 7 . 3 2 八進(jìn)制
所以,(10101111.01101)2=(257.32)8。
注意
從小數(shù)點(diǎn)開始,往左為整數(shù),最高位不足3位的,可以在前面補(bǔ)0;往右為小數(shù),最低位不足3位的,必須在最低位后面補(bǔ)0。
(2)八進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
按每1位八進(jìn)制對應(yīng)3位二進(jìn)制展開即得到對應(yīng)的二進(jìn)制數(shù)。
【例1-5】將八進(jìn)制數(shù)457.264轉(zhuǎn)換為二進(jìn)制數(shù)。
(457.264)8=(100 101 111 . 010 110 100)2
轉(zhuǎn)換后的二進(jìn)制最高位和最低位無效的0可以省略。
4.二進(jìn)制數(shù)和十六進(jìn)制數(shù)之間的轉(zhuǎn)換
(1)二進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù)
轉(zhuǎn)換方法與前面所介紹的二進(jìn)制數(shù)轉(zhuǎn)換為八進(jìn)制數(shù)類似,唯一的區(qū)別是4位二進(jìn)制對應(yīng)1位十六進(jìn)制,而且十六進(jìn)制除了0~9這10個(gè)數(shù)符外,還用A~F表示它另外的6個(gè)數(shù)符。
【例1-6】將二進(jìn)制數(shù)111000111.00101轉(zhuǎn)換為十六進(jìn)制數(shù)。
0001 1100 0111 . 0110 1000 二進(jìn)制
1 C 7 . 2 8 八進(jìn)制
從小數(shù)點(diǎn)開始,往左為整數(shù),最高位不足4位的,可以在前面補(bǔ)0;往右為小數(shù),最低位不足4位的,必須在最低位后面補(bǔ)0。所以,(111000111.00101)2=(1C7.28)16。
(2)十六進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)
按每1位十六進(jìn)制對應(yīng)4位二進(jìn)制展開即得到對應(yīng)的二進(jìn)制數(shù)。
【例1-7】將十六進(jìn)制數(shù)5DF.6A轉(zhuǎn)換為二進(jìn)制數(shù)。
(5DF.6A)16=(0101 1101 1111.0110 1010)2
轉(zhuǎn)換后的二進(jìn)制最高位和最低位無效的0可以省略。
5.十進(jìn)制數(shù)與八進(jìn)制數(shù)、十六進(jìn)制數(shù)之間的相互轉(zhuǎn)換
按式(1-1)所給出的表達(dá)關(guān)系,可以將任意進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)。通常,十進(jìn)制和八進(jìn)制及十六進(jìn)制之間的轉(zhuǎn)換不需要直接進(jìn)行,可用二進(jìn)制作為中間量進(jìn)行相互轉(zhuǎn)換。如要將一個(gè)十進(jìn)制數(shù)轉(zhuǎn)換為相應(yīng)的十六進(jìn)制數(shù),可以先將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后直接根據(jù)二進(jìn)制數(shù)寫出對應(yīng)的十六進(jìn)制數(shù),反之亦然。表1-2-2列出了常用進(jìn)制之間的轉(zhuǎn)換。
表1-2-2 十進(jìn)制、二進(jìn)制、八進(jìn)制、十六進(jìn)制轉(zhuǎn)換表

- Vue.js 3.x快速入門
- Visual Basic .NET程序設(shè)計(jì)(第3版)
- AngularJS Testing Cookbook
- GitLab Cookbook
- .NET 4.0面向?qū)ο缶幊搪劊夯A(chǔ)篇
- 編寫高質(zhì)量代碼:改善C程序代碼的125個(gè)建議
- GameMaker Programming By Example
- Java應(yīng)用開發(fā)技術(shù)實(shí)例教程
- 零基礎(chǔ)學(xué)單片機(jī)C語言程序設(shè)計(jì)
- RabbitMQ Essentials
- 常用工具軟件立體化教程(微課版)
- MySQL 8從零開始學(xué)(視頻教學(xué)版)
- Elasticsearch Blueprints
- Oracle Database XE 11gR2 Jump Start Guide
- R語言實(shí)戰(zhàn)(第2版)