王方云 賴秦超
摘 要 本文闡明了計算機采用二進制的原因以及進制數(shù)中最重要的兩個概念。從常用的幾種進制數(shù)基數(shù)的對應(yīng)關(guān)系分析和說明了進制數(shù)內(nèi)在規(guī)律性。通過實例深入分析了常見的幾種進制數(shù)的轉(zhuǎn)換規(guī)則及其轉(zhuǎn)換規(guī)則的內(nèi)在原因。
關(guān)鍵詞 進制數(shù) 轉(zhuǎn)換 內(nèi)在規(guī)律
中圖分類號:TP311 文獻標(biāo)識碼:A
Hexadecimal Number and its Conversion Inherent Laws
WANG Fangyun, LAI Qinchao
(Sichuan Aerospace Polytechnic, Chengdu, Sichuan 610100)
Abstract Firstly, this paper clarifies the reason why computer adopts Binary System and two of most important concepts in it. Secondly, analyzes the corresponding relationship among a few frequently-used number systems and make clear the inner regularities of Number Systems. thirdly, analyzes deeply the rules of conversion among a few frequently-used Number Systems by examples and expounds the inner reason of the rules.
Key words number systems of computer; conversion; inner regularity
在人類社會發(fā)展的歷史進程中,產(chǎn)生了多種多樣的進制數(shù)。如七進制(7天一周)、十進制(人們最熟悉的進制數(shù))、十二進制(12個月一年)、二十四進制(24小時一天)等。所以進制數(shù)對我們并不陌生。它實實在在地存在于我們的生活中。
在計算機學(xué)科領(lǐng)域使用的進制數(shù)是二進制(用B表示)、八進制(用O表示)、十進制(用D表示)、十六進制(用H表示)。對計算機硬件來說,它只使用二進制數(shù)。其優(yōu)越性表現(xiàn)為結(jié)構(gòu)簡單、成本低廉、實現(xiàn)容易。它實現(xiàn)的機制為二穩(wěn)態(tài)元件,運算簡單,節(jié)省存儲空間,方便采用邏輯運算。所以計算機硬件采用二進制是自然而然的事。
然而,人們習(xí)慣于十進制,同時在編程中會使用八進制數(shù)和十六進制數(shù)。這就不得不面臨幾種進制數(shù)的轉(zhuǎn)換問題。
1 進制數(shù)中兩個重要概念
(1)基數(shù):描述一種進制數(shù)基本數(shù)字的個數(shù),稱為基數(shù)。如二進制的基數(shù)為2、八進制的基數(shù)為8、十進制的基數(shù)為10、十六進制的基數(shù)為16。
(2)位權(quán):描述一個數(shù)值中某一個位置上數(shù)字的倍乘數(shù)的大小。
例題一:十進制數(shù)121.21 = 1 ? + 2 ? + 1 ? + 2 ? + 1 ?
這個十進制的展開表達式是大家都理解的。該十進制數(shù)中有三個1,兩個2,但它們表示的數(shù)值大小不一樣。就是通過位的權(quán)數(shù)來實現(xiàn)的。(第一個1的位權(quán)是,第二個1的位權(quán)是,第三個1的位權(quán)是,第一個2的位權(quán)是,第二個2的位權(quán)是)
2 常用進制數(shù)基數(shù)之間的對應(yīng)關(guān)系(表1)
表1中可以看出:每一個縱列對應(yīng)的每一種進制數(shù)的值是等效的。
3 常用進制數(shù)之間的相互轉(zhuǎn)換
3.1 二、八、十六進制轉(zhuǎn)換為十進制
轉(zhuǎn)換規(guī)則:按位權(quán)展開。
例題二:111101.101B = 1 ? + 1 ? + 0 ? + 1 ? + 1 ? + 1 ? + 1 ? + 0 ? + 1? = 61.625本轉(zhuǎn)換規(guī)則完全可以通過例題一來理解。
3.2 十進制轉(zhuǎn)換為二、八、十六進制
轉(zhuǎn)換規(guī)則:
整數(shù)部分:除基取余,先余為低,后余為高(即:將十進制數(shù)的整數(shù)部分除以基數(shù)取余數(shù),先得到的余數(shù)為低位,后得到的余數(shù)為高位。)
小數(shù)部分:乘基取整,先整為高,后整為低(即:將十進制數(shù)的小數(shù)部分乘以基數(shù)取整數(shù),先得到的整數(shù)為高位,后得到的整數(shù)為低位。)
根據(jù)轉(zhuǎn)換規(guī)則得:61.625D=111101.101B
對本規(guī)則的理解:本轉(zhuǎn)換是例題二的逆運算。例題二中整數(shù)部分是乘以2的倍數(shù),小數(shù)部分是除以2的倍數(shù)。所以,它的逆運算是整數(shù)部分除以2取余,小數(shù)部分乘以2取整。
3.3 二進制轉(zhuǎn)換為八進制
轉(zhuǎn)換規(guī)則:從小數(shù)點開始向左右兩邊分組,三位一組,不足三位,以0補齊,每一組(三位二進制數(shù))對應(yīng)一位八進制基數(shù)。
例題四:10111101.1101B=275.64O
對本規(guī)則的理解:
二進制轉(zhuǎn)換為八進制為什么必須三位一組呢?
用一種進制數(shù)描述另一種進制數(shù),只要這種進制數(shù)能夠完全描述另一種進制數(shù)的所有基數(shù),就完全描述了另一種進制數(shù)。在本轉(zhuǎn)換中,要用二進制完全描述八進制數(shù),只要二進制數(shù)能夠描述八進制數(shù)中的最大基數(shù)就能實現(xiàn)對八進制數(shù)的完全描述。八進制數(shù)的最大基數(shù)是7,用二進制數(shù)111才能描述。所以,二進制轉(zhuǎn)換為八進制必須三位一組。
3.4 二進制轉(zhuǎn)換為十六進制
轉(zhuǎn)換規(guī)則:從小數(shù)點開始向左右兩邊分組,四位一組,不足三四位,以0補齊,每一組(四位二進制數(shù))對應(yīng)一位十六進制基數(shù)。
例題五:1011111101.111011B=2FD.EC H
對本規(guī)則的理解:
二進制轉(zhuǎn)換為十六進制為什么必須四位一組呢?
和二進制轉(zhuǎn)換為八進制一樣。用一種進制數(shù)描述另一種進制數(shù),只要這種進制數(shù)能夠完全描述另一種進制數(shù)的所有基數(shù),就完全描述了另一種進制數(shù)。在本轉(zhuǎn)換中,要用二進制完全描述十六進制數(shù),只要二進制數(shù)能夠描述十六進制數(shù)中的最大基數(shù)就能實現(xiàn)對十六進制數(shù)的完全描述。十六進制數(shù)的最大基數(shù)是F,用二進制數(shù)1111才能描述。所以,二進制轉(zhuǎn)換為十六進制必須四位一組。
3.5 八進制與十六進制的相互轉(zhuǎn)換
由于八進制數(shù)和十六進制數(shù)對二進制來說,只是三位和四位的問題(八進制是一個數(shù)對應(yīng)三位二進制數(shù),十六進制是一個數(shù)對應(yīng)四位二進制數(shù))。所以,這兩種進制數(shù)的轉(zhuǎn)換可以以二進制為中介。即先轉(zhuǎn)換為二進制,再轉(zhuǎn)換為相應(yīng)的進制數(shù)。
例題六:73012 0 = 111 011 000 001 010 B
=0111 0110 0000 1010 B
= 7 6 0 A H
=760A H