隨著計算機技術(shù)的的發(fā)展,進制之間的轉(zhuǎn)換對于理解計算機的工作原理非常重要,計算機直接識別及應(yīng)用的數(shù)據(jù)為二進制數(shù),但人們在生活中常用的為十進制數(shù)據(jù),如何轉(zhuǎn)換在計算機中是一個要點。
【關(guān)鍵詞】計算機 轉(zhuǎn)換技巧 二進制
1 引言
計算機是一個電子設(shè)備,其內(nèi)部器件采用了很多的電子元件,在這些電子元件中,電器開關(guān)的打開和斷開、電平的高和低、二極管的導(dǎo)通和截止以及邏輯代數(shù)中的真與假,這兩種狀態(tài)技術(shù)實現(xiàn)簡單以及運算規(guī)則簡單而且很適合邏輯運算,因此計算機能表示的狀態(tài)可以采用0和1兩個數(shù)碼來表示數(shù)據(jù)在計算機內(nèi)的存儲形式以及運算。 但是,對于一些數(shù)值利用二進制表示太長了。 因此,好多軟件編寫過程中用十六進制和八進制來解決此問題。
2 進制的基本概念
在計算機中廣泛應(yīng)用的進制主要有二進制、八進制、十進制以及十六進制,在我們?nèi)粘5纳钪兄饕膽?yīng)用還是十進制。十進制: 用符號0,1…8,9 按逢十進一的進位規(guī)則,表示數(shù)字的方法。 二進制:用0、1兩個數(shù)字按逢二進一的進位規(guī)則來表示數(shù)字的方法。 八進制: 用數(shù)字0,1…6,7按逢八進一的進位規(guī)則來表示數(shù)字的方法。 十六進制: 用數(shù)字0,1…,8, 9,A…F符號按逢十六進一的規(guī)則來表示數(shù)字的方法。進制轉(zhuǎn)換是利用對應(yīng)的特殊符號來計數(shù)的辦法,里面主要包含很多種數(shù)字間的轉(zhuǎn)換。
3 進制轉(zhuǎn)換的常見方法
3.1 十進制與其他進制相互轉(zhuǎn)換的方法
3.1.1 十進制如何轉(zhuǎn)換x進制(x分別代表二、八、十六進制數(shù))
傳統(tǒng)方法:“除x逆序取余”法
由于整數(shù)和小數(shù)的轉(zhuǎn)換方法不同,因此需要先將十進制數(shù)的整數(shù)和對應(yīng)的小數(shù)分別進行轉(zhuǎn)換,然后再將兩部分連接在一起。
十進制整數(shù)轉(zhuǎn)換為x進制整數(shù)采用“除x取余,直到商為零時為止,逆序排列”法。
十進制小數(shù)部分轉(zhuǎn)換成x進制小數(shù)部分需采用“乘x取整,直到乘數(shù)后的積中小數(shù)為零為止,或達到所要求的精度為止,順序進行排序” 。
技巧方法:因式分解法
(1)十進制轉(zhuǎn)化為二進制,都與基數(shù)2的次方數(shù)關(guān)聯(lián),也就是從高位到低位依次為2n、2n-1… 、64、32、16、8、4、2、1,其中1的位數(shù)有效,0的位數(shù)無效,所以就根據(jù)二進制對應(yīng)的位數(shù)按上數(shù)對應(yīng)的數(shù)字進行分解相應(yīng)的因式。
例如:將十進制數(shù)303.5轉(zhuǎn)換為二進制數(shù)
整數(shù)部分:即:(303)D=(100101111)B
小數(shù)部分:整數(shù)轉(zhuǎn)換較為精確,而小數(shù)轉(zhuǎn)換易出現(xiàn)一些循環(huán)小數(shù)的情況。因此需要進行一些四舍五入的處理以停止循環(huán),一般情況下,小數(shù)的轉(zhuǎn)換會稍有誤差。
用上例方法得到(0.5)D=(0.1)B 故(303.5)D=(100101111.1)B
(2)十進制在轉(zhuǎn)化八進制時,首先采用因式分解轉(zhuǎn)換成二進制以后在從后面向前面將三位二進制的數(shù)合并轉(zhuǎn)換成一位對應(yīng)的八進制,不足三位時需要填補0湊成三位數(shù)字。
例如:(303)10=(100101111)2=(457)8
(3)十進制轉(zhuǎn)化對應(yīng)的十六進制時,首先進行因式分解轉(zhuǎn)換成二進制后在從后向前將四位二進制數(shù)合并轉(zhuǎn)換為一位對應(yīng)的十六進制數(shù),當(dāng)不足四位時需要填補0湊成四位數(shù)字。
例如:(303)10=(100101111)2=(12F)16
3.1.2 x進制(x分別代表二、八、十六進制數(shù))如何轉(zhuǎn)換十進制
整數(shù)部分:將一個x進制整數(shù)轉(zhuǎn)換為對應(yīng)的十進制整數(shù),對應(yīng)的轉(zhuǎn)換方法是把這個數(shù)的最高位乘xn-1,…,x1,最低位乘以x0,然后加到一起就是與之對應(yīng)的十進制數(shù)。
小數(shù)部分:把這個小數(shù)位的最高位乘上x-1,加上次高位乘上x-2,…,一直加到最后一位乘上x-n,然后加到一起得到的和就是十進制數(shù)字。
結(jié)果:將要把整數(shù)與小數(shù)兩部分用小點來連接起來。
例如:(10110.101)B=1*24+0*23+1*22 +1*21+0*20+1*2-1+0*2-2+1*2-3
=16+4+2+0.5+0.125=(22.625)D
3.2 二進制與其他進制相互轉(zhuǎn)換的方法
3.2.1 二進制如何轉(zhuǎn)換為八進制
根據(jù)81=23式子,得出八進制的一位可拆分為三位二進制。
二進制轉(zhuǎn)換成八進制:因為每三位二進制可以用一位八進制來表示,所以只要把每三位二進制數(shù)用八進制表示出來,連接起來就是這個二進制數(shù)的八進制數(shù)字。
例如:將二進制數(shù)1011.10轉(zhuǎn)換成八進制。
(001011.100)2=(1 6.4)8
3.2.2 八進制如何轉(zhuǎn)換為二進制
其中每位八進制可采用三位二進制表示,把每個八進制的數(shù)字采用三位二進制表示,就是八進制數(shù)對應(yīng)的二進制數(shù)字。
例如:把八進制數(shù)364.12轉(zhuǎn)換成二進制。
(3 7 4.12)8=(011111100.001010)2
3.2.3 二進制如何轉(zhuǎn)換為十進制
二進制轉(zhuǎn)換規(guī)則是逢二進一,因此進到個位的1就是20,十位上的1,實際上就是21,百位上的1,就是22,同理,小數(shù)后面第一位的1就是2-1,以此類推。
例如:(1111.11)2=1*23+1*22+1*21+1*20+ 1*2-1+1*2-2=(15.75)10
3.2.4 十進制如何轉(zhuǎn)換二進制
同前。
3.2.5 二進制如何轉(zhuǎn)換十六進制
由于161=24,從而得出十六進制的一位等于對應(yīng)二進制的四位,二進制與十六進制之間也可以用對應(yīng)轉(zhuǎn)換的方法進行轉(zhuǎn)換,類似于二進制與八進制之間的轉(zhuǎn)換。每位十六進制數(shù)可以先轉(zhuǎn)換為四位二進制數(shù),要把每四位二進制數(shù)用一位十六進制表示,然后連接在一起就是這個二進制數(shù)與之對應(yīng)的十六進制數(shù)字。
例如:將101110011.101的二進制數(shù)轉(zhuǎn)成對應(yīng)的十六進制。
(000101110011.1010)2=(173.A)16
3.2.6 十六進制轉(zhuǎn)換二進制
對于十六進制中的每位數(shù)字可采用四位二進制來進行轉(zhuǎn)換,從低位到高位,把十六進制數(shù)中的每個數(shù)字用四位二進制數(shù)字來轉(zhuǎn)換即可,也就是十六進制數(shù)對應(yīng)的二進制數(shù)碼。
例如:把十六進制數(shù)A2B.C5轉(zhuǎn)換成二進制。
(A2B.C5)16=(101000101011.11000101)2
4 結(jié)束語
進制在計算機技術(shù)中應(yīng)用廣泛,計算機能識別的數(shù)據(jù)只有二進制數(shù),但我們在生活中應(yīng)用的數(shù)據(jù)都是十進制數(shù),而且進制之間轉(zhuǎn)換對于計算機工作原理的理解有很大作用,二進制與十進制之間進行轉(zhuǎn)化尤為重要。
參考文獻
[1]白中英.計算機組成原理[M].北京:科學(xué)技術(shù)出版社,2002.
[2]米保全.計算機基礎(chǔ)及Office辦公軟件應(yīng)用[M].北京:機械工業(yè)出版社,2001.
作者簡介
米保全,大學(xué)本科學(xué)歷。甘肅機電職業(yè)技術(shù)學(xué)院副教授。研究方向為計算機。
作者單位
甘肅機電職業(yè)技術(shù)學(xué)院 甘肅省天水市 741001