計(jì)算機(jī)內(nèi)部是以二進(jìn)制形式表示數(shù)據(jù)和進(jìn)行運(yùn)算的;計(jì)算機(jī)內(nèi)的地址等信號(hào)常用十六進(jìn)制來表示,而人們?nèi)粘S至?xí)慣用十進(jìn)制來表示數(shù)據(jù)。這樣要表示一個(gè)數(shù)據(jù)就要選擇一個(gè)適當(dāng)?shù)臄?shù)字符號(hào)來規(guī)定其組合規(guī)律,也就是要確定所選用的進(jìn)位計(jì)數(shù)制。各種進(jìn)位制都有一個(gè)基本特征數(shù),稱為進(jìn)位制的“基數(shù)”?;鶖?shù)表示了進(jìn)位制所具有的數(shù)字符號(hào)的個(gè)數(shù)及進(jìn)位的規(guī)律。下面就以常用的十進(jìn)制、二進(jìn)制、八進(jìn)制和十六進(jìn)制為例,分別進(jìn)行敘述。
一、常用的三種計(jì)數(shù)制
1、十進(jìn)制(Decimal)
十進(jìn)制的基數(shù)是10,它有10個(gè)不同的數(shù)字符號(hào),即0、1、2、3、…、9。它的計(jì)數(shù)規(guī)律是“逢十進(jìn)一”或“借一當(dāng)十”。處在不同位置的數(shù)字符號(hào)具有不同的意義,或者說有著不同的“權(quán)”。所謂的“權(quán)”就是每一位對(duì)其基數(shù)具有不同的倍數(shù)。例如,一個(gè)十進(jìn)制數(shù)為
123.45=1*102+2*101+3*100+4*10-1+5*10-2
等號(hào)左邊為并列表示法,等號(hào)右邊為多項(xiàng)式表示法,顯然這兩種表示法表示的數(shù)是等價(jià)的。在右邊多項(xiàng)式表示法中,1、2、3、4、5被稱為系數(shù)項(xiàng),而102、101、100、10-1、10-2等被稱為該位的“權(quán)”。
一般來說,任何一個(gè)十進(jìn)制數(shù)”都可以采用并列表不法表不如下:
N10=dn-1d n-2…d1d0. d-1d-2…d-m
其中,下標(biāo)n表示整數(shù)部分的位數(shù),下標(biāo)m表示小數(shù)部分的位數(shù),d是0~9中的某一個(gè)數(shù),即di∈(0,1,…,9)。同樣,任意一個(gè)十進(jìn)制數(shù)N都可以用多項(xiàng)式表示法表示如下:
N10=dn-1*10n-1+…+d1*101+d0*100+d-1*10-1+…+d-m*10m
其中,m、n為正整數(shù),di 表示第i位的系數(shù),10i 稱為該位的權(quán)。所以某一位數(shù)的大小是由各系數(shù)項(xiàng)和其權(quán)值的乘積所決定的。
2、二進(jìn)制(Binary)
二進(jìn)制的基數(shù)是2,它只有兩個(gè)數(shù)字符號(hào),即0和1。計(jì)算規(guī)律是“逢二進(jìn)一”或“借一當(dāng)二”。例如:
(101.01)2=1*23+1*22+0*21+1*20+0*2-1+1*2-2
任何一個(gè)二進(jìn)制數(shù)N都可以用其多項(xiàng)式來表示:
N2=dn-1*2n-1+dn-2*2n-2+…+d1*21+d0*20+d-1*2-1+d-2*2-2+…+d-m*2-m
式中任何一位數(shù)值的大小都可以用該位的系數(shù)項(xiàng) di 和權(quán)值 2i 的積來確定。
3、十六進(jìn)制(Hexadecimal)
十六進(jìn)制的基數(shù)為16,它有16個(gè)數(shù)字符號(hào)、即0~9、A~F。其中 A、B、C、D、E、F 分別代表十進(jìn)制數(shù)的10、11、12、13、14、15。各位之間“逢十六進(jìn)一”或者“借一當(dāng)十六”。各位的權(quán)值為 16i。例如:
(2C7.1F)16=2*162+12*161+7*160+1*16-1+15*16-2
二、3種計(jì)數(shù)制之間的相互轉(zhuǎn)換
對(duì)于同一個(gè)數(shù),可以采用不同的計(jì)數(shù)制來表示,其形式也不同。如:
(11)10=(1011)2=(B)16
1、R 進(jìn)制轉(zhuǎn)換成十進(jìn)制的方法
具體的方法是先將其并列形式的數(shù)寫成其多項(xiàng)式表示形式,然后,經(jīng)計(jì)算后就可得到其十進(jìn)制的結(jié)果。這種方法披稱為按權(quán)展開法。對(duì)于一個(gè)任意的R進(jìn)制數(shù)N都可以寫成如下形式:
N = dn-1 dn-2…d1 d0d-1d-2…d-m = dn-1*Rn-1+…+d1*R1+d0*R0+d-1*R-1+…+d-m*R-m
其中,R 為進(jìn)位基數(shù),Ri 是對(duì)應(yīng)位的權(quán)值,di 為系數(shù)項(xiàng),特此式求和計(jì)算之后,即可以完成 R 進(jìn)制數(shù)對(duì)十進(jìn)制數(shù)的轉(zhuǎn)換。
例如,寫出(1101.01)2、(10D)16的十進(jìn)制數(shù)。
(1101.01)2=1*23+1*22+0*21+1*20+0*2-1+0*2-2 =8+4+1+0.25 =13.25
(10D)16=1*162+0*161+13*160 = 256+13 = 269
2、十進(jìn)制轉(zhuǎn)換成二進(jìn)觸方法
十進(jìn)制數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)一般分為兩個(gè)步驟,即整數(shù)部分的轉(zhuǎn)換和小數(shù)部分的轉(zhuǎn)換。
(1)整數(shù)部分的轉(zhuǎn)換
除2取余法:這種方法是由于 D10=N2=dn-1*2n-1+dn-2*2n-2+…d1*21+d0*20,所以具體方法是把給定的十進(jìn)制整數(shù)除以2,取其余數(shù)作為二進(jìn)制整數(shù)最低位的系數(shù) do,然后繼續(xù)將整數(shù)部分除以2,所得余數(shù)作為二進(jìn)制整數(shù)次低位的系數(shù) d1,一直重復(fù)下去,最后可以得到二進(jìn)制整數(shù)部分。
例如,將(327)10轉(zhuǎn)換成二進(jìn)制數(shù)。
327 | 余數(shù) | 各項(xiàng)系數(shù) | ||
除以2= | 163 | ... | 1 | d0 |
... | 81 | ... | 1 | d1 |
... | 40 | ... | 1 | d2 |
... | 20 | ... | 0 | d3 |
... | 10 | ... | 0 | d4 |
... | 5 | ... | 0 | d5 |
... | 2 | ... | 1 | d6 |
... | 1 | ... | 0 | d7 |
... | 0 | ... | 1 | d8 |
所以,(327)10=d8 d7 d6 d5 d4 d3 d2d1 d0=(101000111)2。
此方法可擴(kuò)展為陳 R 取余法。如將 R 設(shè)為16,則可將十進(jìn)制整數(shù)轉(zhuǎn)變?yōu)槭M(jìn)制整數(shù)。
減權(quán)定位法:因?yàn)?D10=N2=dn-1*2n-1+dn-2*2n-2+…d1*21+d0*20,所以二進(jìn)制多項(xiàng)式中的每一項(xiàng)都有自己的權(quán)值。若該項(xiàng)系數(shù)值為 di=0,則該項(xiàng)值為0,否則 di 應(yīng)為1。根據(jù)這一對(duì)應(yīng)關(guān)系,可提出減權(quán)定位的轉(zhuǎn)換方法:將十進(jìn)制數(shù)依次從二進(jìn)制高位權(quán)值進(jìn)行比較:若夠減則對(duì)應(yīng)位 di=1,減去該位權(quán)值后再往下比較;若不夠減則對(duì)應(yīng)值 di=0,越過該位與低一位的權(quán)值比較,如此進(jìn)行直到余數(shù)為0為止。
例如,將(327)10轉(zhuǎn)換成二進(jìn)制數(shù)。因?yàn)?12(29)> 327 > 256(28),所以從權(quán)值256對(duì)應(yīng)值開始比較。
減權(quán)比較 | di | 位權(quán) |
327-256=71 | 1 | 28 |
71<128 | 0 | 27 |
71-64=7 | 1 | 26 |
7<32 | 0 | 25 |
7<16 | 0 | 24 |
7<8 | 0 | 23 |
7-4=3 | 、 | 22 |
3-2=1 | 1 | 21 |
1-1=0 | 1 | 20 |
所以,(327)10=(101000111)2。
(2)小數(shù)部分的轉(zhuǎn)換
轉(zhuǎn)換的方法是采用乘2取整數(shù)表示法。由于 D10=d-1*2-1+d-2*2-2+…d-m*2-m,所以具體方法是把給定的十進(jìn)制小數(shù)乘以2,取其整數(shù)部分作為二進(jìn)制小數(shù)的小數(shù)點(diǎn)后的第一位系數(shù);然后再將乘積的小數(shù)部分繼續(xù)乘以2,取所得積的整數(shù)部分作為小數(shù)后的第二位系數(shù);依次重復(fù)做下去,就可以得到二進(jìn)制小數(shù)部分。
例如,將(0.8125) 10。轉(zhuǎn)換成二進(jìn)制小數(shù)。
整數(shù)部分 | 系數(shù)部分 | |
2*0.8125=1.625 | 1 | d-1=1 |
2*0.625=1.25 | 1 | d-2=1 |
2*0.25=0.5 | 0 | d-3=0 |
2*0.5=1.0 | 1 | d-4=1 |
所以,(0.8125)10=d0 d-1 d-2 d-3 d-4=(0.1101)2。
在計(jì)算中可以按照所需的小數(shù)點(diǎn)位數(shù),取其結(jié)果位近似值。
此方法可以擴(kuò)展為乘R取整法.如將R變?yōu)?6,則可將十進(jìn)制小數(shù)部分直接變?yōu)槭M(jìn)制小數(shù)。
3、二進(jìn)制與十六進(jìn)制的轉(zhuǎn)換
(1)二進(jìn)制轉(zhuǎn)換成十六進(jìn)制
4位二進(jìn)制數(shù)的所有組合可表示十六進(jìn)制數(shù)的16個(gè)代碼,它們之間的對(duì)應(yīng)關(guān)系如下:
二進(jìn)制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 |
十六進(jìn)制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
二進(jìn)制 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
十六進(jìn)制 | 8 | 9 | A | B | C | D | E | F |
進(jìn)制轉(zhuǎn)換的具體方法:從小數(shù)點(diǎn)開始,分別向左、向右,每4位二進(jìn)制數(shù)為一組用十六進(jìn)制數(shù)值來書寫。若小數(shù)點(diǎn)左側(cè)位數(shù)不是4的倍數(shù),則最左側(cè)用0補(bǔ)充;若小數(shù)點(diǎn)右側(cè)位數(shù)不是4的倍數(shù),則最右側(cè)用0補(bǔ)充。
例如,(110110111.01101)2=(0001 1011 0111.0110 1000)2 =(1B7.68)16。
(2)十六進(jìn)制轉(zhuǎn)換成二進(jìn)制
具體的轉(zhuǎn)換方法是:將每個(gè)十六進(jìn)制數(shù)用4位二進(jìn)制數(shù)來書寫,轉(zhuǎn)化后最左側(cè)或者最右側(cè)的0在書寫的時(shí)候可以省去。例如:
(7AC.DE)16=(111 1010 1100.1101 111)2
例1:把(5/16)10轉(zhuǎn)換成二進(jìn)制數(shù)。
解:5/16=5×2-4=(101 2*(0.0001)2=(0.0101)2
小數(shù)點(diǎn)向左移4位等于乘以2-4。
例2:把(19.125) 10轉(zhuǎn)換成二進(jìn)制數(shù)、十六進(jìn)制數(shù)。
解:首先把整數(shù)部分(19)10轉(zhuǎn)換成二進(jìn)制數(shù):
(19)10=16+2+1=24+21+20=(10011)2
再把小數(shù)部分(0.125)10轉(zhuǎn)換成二進(jìn)制數(shù):
0.125*2=0.25 0
0.25*2=0.5 0
0.5*2=1 1
所以,(0.125)10=(0.001) 2。
把整數(shù)與小數(shù)部分合起來結(jié)果為
(19.125)10=(10011.001)2=(13.2)16
聯(lián)系客服