- 大學計算機基礎(第二版)
- 何元清 付茂洺
- 1393字
- 2019-09-30 12:12:44
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)換表

- Twilio Best Practices
- AngularJS Web Application Development Blueprints
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- Hadoop+Spark大數(shù)據(jù)分析實戰(zhàn)
- Java性能權(quán)威指南(第2版)
- 計算機應用基礎案例教程
- Mastering React
- ScratchJr趣味編程動手玩:讓孩子用編程講故事
- ActionScript 3.0從入門到精通(視頻實戰(zhàn)版)
- Python函數(shù)式編程(第2版)
- ASP.NET Web API Security Essentials
- 深入淺出Python數(shù)據(jù)分析
- Python數(shù)據(jù)預處理技術(shù)與實踐
- Moodle 3.x Developer's Guide
- Mastering VMware vSphere Storage