王方云 賴秦超
摘 要 本文闡明了計算機采用二進制的原因以及進制數中最重要的兩個概念。從常用的幾種進制數基數的對應關系分析和說明了進制數內在規律性。通過實例深入分析了常見的幾種進制數的轉換規則及其轉換規則的內在原因。
關鍵詞 進制數 轉換 內在規律
中圖分類號:TP311 文獻標識碼: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
在人類社會發展的歷史進程中,產生了多種多樣的進制數。如七進制(7天一周)、十進制(人們最熟悉的進制數)、十二進制(12個月一年)、二十四進制(24小時一天)等。所以進制數對我們并不陌生。它實實在在地存在于我們的生活中。
在計算機學科領域使用的進制數是二進制(用B表示)、八進制(用O表示)、十進制(用D表示)、十六進制(用H表示)。對計算機硬件來說,它只使用二進制數。其優越性表現為結構簡單、成本低廉、實現容易。它實現的機制為二穩態元件,運算簡單,節省存儲空間,方便采用邏輯運算。所以計算機硬件采用二進制是自然而然的事。
然而,人們習慣于十進制,同時在編程中會使用八進制數和十六進制數。這就不得不面臨幾種進制數的轉換問題。
1 進制數中兩個重要概念
(1)基數:描述一種進制數基本數字的個數,稱為基數。如二進制的基數為2、八進制的基數為8、十進制的基數為10、十六進制的基數為16。
(2)位權:描述一個數值中某一個位置上數字的倍乘數的大小。
例題一:十進制數121.21 = 1 ? + 2 ? + 1 ? + 2 ? + 1 ?
這個十進制的展開表達式是大家都理解的。該十進制數中有三個1,兩個2,但它們表示的數值大小不一樣。就是通過位的權數來實現的。(第一個1的位權是,第二個1的位權是,第三個1的位權是,第一個2的位權是,第二個2的位權是)
2 常用進制數基數之間的對應關系(表1)
表1中可以看出:每一個縱列對應的每一種進制數的值是等效的。
3 常用進制數之間的相互轉換
3.1 二、八、十六進制轉換為十進制
轉換規則:按位權展開。
例題二:111101.101B = 1 ? + 1 ? + 0 ? + 1 ? + 1 ? + 1 ? + 1 ? + 0 ? + 1? = 61.625本轉換規則完全可以通過例題一來理解。
3.2 十進制轉換為二、八、十六進制
轉換規則:
整數部分:除基取余,先余為低,后余為高(即:將十進制數的整數部分除以基數取余數,先得到的余數為低位,后得到的余數為高位。)
小數部分:乘基取整,先整為高,后整為低(即:將十進制數的小數部分乘以基數取整數,先得到的整數為高位,后得到的整數為低位。)
根據轉換規則得:61.625D=111101.101B
對本規則的理解:本轉換是例題二的逆運算。例題二中整數部分是乘以2的倍數,小數部分是除以2的倍數。所以,它的逆運算是整數部分除以2取余,小數部分乘以2取整。
3.3 二進制轉換為八進制
轉換規則:從小數點開始向左右兩邊分組,三位一組,不足三位,以0補齊,每一組(三位二進制數)對應一位八進制基數。
例題四:10111101.1101B=275.64O
對本規則的理解:
二進制轉換為八進制為什么必須三位一組呢?
用一種進制數描述另一種進制數,只要這種進制數能夠完全描述另一種進制數的所有基數,就完全描述了另一種進制數。在本轉換中,要用二進制完全描述八進制數,只要二進制數能夠描述八進制數中的最大基數就能實現對八進制數的完全描述。八進制數的最大基數是7,用二進制數111才能描述。所以,二進制轉換為八進制必須三位一組。
3.4 二進制轉換為十六進制
轉換規則:從小數點開始向左右兩邊分組,四位一組,不足三四位,以0補齊,每一組(四位二進制數)對應一位十六進制基數。
例題五:1011111101.111011B=2FD.EC H
對本規則的理解:
二進制轉換為十六進制為什么必須四位一組呢?
和二進制轉換為八進制一樣。用一種進制數描述另一種進制數,只要這種進制數能夠完全描述另一種進制數的所有基數,就完全描述了另一種進制數。在本轉換中,要用二進制完全描述十六進制數,只要二進制數能夠描述十六進制數中的最大基數就能實現對十六進制數的完全描述。十六進制數的最大基數是F,用二進制數1111才能描述。所以,二進制轉換為十六進制必須四位一組。
3.5 八進制與十六進制的相互轉換
由于八進制數和十六進制數對二進制來說,只是三位和四位的問題(八進制是一個數對應三位二進制數,十六進制是一個數對應四位二進制數)。所以,這兩種進制數的轉換可以以二進制為中介。即先轉換為二進制,再轉換為相應的進制數。
例題六:73012 0 = 111 011 000 001 010 B
=0111 0110 0000 1010 B
= 7 6 0 A H
=760A H