)
[例]將二進制數11010001011.11011用三位分組轉換的方法轉換成八進制數。
①從小數點起對整數位向左,對小數位向右三位分一組,不足三位時,在最外端加補0位,使之都成為三位:
(填入0位)0→011 010 001 011.110 110←0(填入0位)
②將三位一組二進制數分別轉換成八進制數,并按原位置次序寫成新的記數數,即得與原數等值的八進制數:3213.66
③從而有:(11010001011.11011)2=(3213.66)8
所以這樣做,是因為八進制數的不同數字恰是8個三位二進制數。
⑵八進制數轉換成二進制數
將八進制數轉換成二進制數時,正是上述方法的逆(一分為三法)。只是注意要在轉換成二進制數后,將相當于被加補的0位上的那些0略去,這些0在二進制記數中是可有可無的,它們并不影響記數值。
[例](3213.66)8=(011 010 001 011.110 110)2=(11010001011.11011)2
八進制數與十進制數之間的轉換,我們至少可以這樣做:
①通過二進制數作中間過渡,將它們互轉:
(17)10=(10001)2=(010 001)2=(21)8
②用“除基(8)取余法”將十進制整數轉換成八進制整數,用“乘基(8)取整法“將十進制純小數轉換成八進制純小數;至于將八進制數轉換成十進制數,只要“按位乘基冪”即可:
[例] ①由 8 17 ②∵ 0.6875
8
8 2……1(低位) (高位) 5. 500
0 8
……2(高位) (低位) 4.0000
得(17)10=(21)8 ∴(0.6875)10=(0.54)8
③于是,(17.6875)10=(21.54)8
④而(21.54)8=2×81+1×80+5×8-1+4×8-2(按位乘基冪)
=16+1+5×0.125+4×0.015625=(17.6875)10
3. 二進制數與十六進制數之間的轉換
⑴二進制數轉換成十六進制數(四位分組轉換法,即合四為一法)
[例](101101111100011.110101111)2=(0101 1011 1110 0011.1101 0111 1000)2
=(5BE3.D78)16
⑵十六進制數轉換成二進制數(四位分組轉換法的逆方法,即一分為四法)
[例](5BE3.D78)16=(0101 1011 1110 0011.1101 0111 1000)2
=(101101111100011.110101111)2
十六進制數與十進制數之間的轉換和八進制數與十進制數之間的轉換的方法完全相同,對基16操作起來也很容易,這里就不再贅述了。
需要強調的是:計算機能夠處理的任何信息,其數據形式在計算機內部都以0和1的方式進行存儲。任何信息要想存入計算機,都必須經過一個轉換裝置,先把計算機要處理的信息轉換成僅由0和1組成的二進制代碼之后再存入計算機。要把存儲于計算機內的各種信息輸出來,也必須再經過轉換裝置把二進制信息轉換成人們所熟悉的和常用的符號。這些工作是由計算機自動完成的,并不需要用戶干預。
計算機所能處理和存儲的信息是大量的,其軟件系統要適應發展的需要,對表示信息的二進制數碼(代碼)必須進行統一的編碼,以保證計算機的通用性,否則就會造成在互換和交流時的混亂。
通常,將十進制數字、英文字母和一些專用符號等數據都用一定長度的二進制數來表示,稱作編碼;用編碼表示的數據就稱代碼。使用計算機時,程序、控制命令、數據等在其內部(機器級上)一律都用代碼?,F在,已有許多種編碼方法,但被普遍使用的是下述的幾種方法。