進制

進制

數學術語
進制,數制是人們利用符号進行計數的科學方法。數制有很多種,在計算機中常用的數制有:十進制,二進制和十六進制。進制也就是進位制,是人們規定的一種進位方法。對于任何一種進制---X進制,就表示某一位置上的數運算時是逢X進一位。十進制是逢十進一,十六進制是逢十六進一,二進制就是逢二進一。對于任何一個數,我們可以用不同的進位制來表示。比如:十進數57(10),可以用二進制表示為111001(2),也可以用五進制表示為212(5),也可以用八進制表示為71(8)、用十六進制表示為39(16),它們所代表的數值都是一樣的。
    中文名:進制 外文名: 定義: 英文名:Hex 應用學科:數學 适用領域:計算機

位權概念

對于形式化的進制表示,我們可以從0開始,對數字的各個數位進行編号,即個位起往左依次為編号0,1,2,……;對稱的,從小數點後的數位則是-1,-2,……

進行進制轉換時,我們不妨設源進制(轉換前所用進制)的基為R1,目标進制(轉換後所用進制)的基為R2,原數值的表示按數位為AnA(n-1)……A2A1A0.A-1A-2……,R1在R2中的表示為R,則有(AnA(n-1)……A2A1A0.A-1A-2……)R1=(An*R^n+A(n-1)*R^(n-1)+……+A2*R^2+A1*R^1+A0*R^0+A-1*R^(-1)+A-2*R^(-2))R2

(由于此處不可選擇字體,說明如下:An,A2,A-1等符号中,n,2,-1等均應改為下标,而上标的幂次均用^作為前綴)

舉例:

一個十進制數110,其中百位上的1表示1個10^2,既100,十位的1表示1個10^1,即10,個位的0表示0個100,即0。

一個二進制數110,其中高位的1表示1個2^2,即4,低位的1表示1個2^1,即2,最低位的0表示0個2^0,即0。

一個十六進制數110,其中高位的1表示1個16^2,即256,低位的1表示1個16^1,即16,最低位的0表示0個16^0,即0。

可見,在數制中,各位數字所表示值的大小不僅與該數字本身的大小有關,還與該數字所在的位置有關,我們稱這關系為數的位權。

十進制數的位權是以10為底的幂,二進制數的位權是以2為底的幂,十六進制數的位權是以16為底的幂。數位由高向低,以降幂的方式排列。負進制記數是一種類似正進制記數的記數方法,正進制記數每一位上的權都是正的,而負進制記數奇數位上的權為負,偶數位上的權為正。

進數轉換

1.二進制數、十六進制數轉換為十進制數

(按權求和)

二進制數、十六進制數轉換為十進制數的規律是相同的。把二進制數(或十六進制數)按位權形式展開多項式和的形式,求其最後的和,就是其對應的十進制數——簡稱“按權求和”.

例如:把(1001.01)2轉換為十進制數。

解:(1001.01)2

=1×23+0×22+0×21+1×20+0×2-1+1×2-2

=8+0+0+1+0.5+0.25

=9.75

把(38A.11)16轉換為十進制數

解:(38A.11)16

=3×162+8×16+10×160+1×16-1+1×16-2

=768+128+10+0.0625+0.0039

=906.0664

2.十進制數轉換為二進制數,十六進制數

(除2/16取餘法)

整數轉換.一個十進制整數轉換為二進制整數通常采用除二取餘法,即用2連續除十進制數,直到商為0,逆序排列餘數即可得到――簡稱除二取餘法.

例:将25轉換為二進制數

解:25÷2=12餘數1

12÷2=6餘數0

6÷2=3餘數0

3÷2=1餘數1

1÷2=0餘數1

所以25=(11001)2

同理,把十進制數轉換為十六進制數時,将基數2轉換成16就可以了.

例:将25轉換為十六進制數

解:25÷16=1餘數9

1÷16=0餘數1

所以25=(19)16

3.二進制數與十六進制數之間的轉換

由于4位二進制數恰好有16個組合狀态,即1位十六進制數與4位二進制數是一一對應的.所以,十六進制數與二進制數的轉換是十分簡單的.

(1)十六進制數轉換成二進制數,隻要将每一位十六進制數用對應的4位二進制數替代即可――簡稱位分四位.

例:将(4AF8B)16轉換為二進制數.

解:4AF8B

01001010111110001011

所以(4AF8B)16=(1001010111110001011)2

(2)二進制數轉換為十六進制數,分别向左,向右每四位一組,依次寫出每組4位二進制數所對應的十六進制數――簡稱四位合一位.

例:将二進制數(111010110)2轉換為十六進制數.

解:000111010110

1D6

所以111010110)2=1D6H

轉換時注意最後一組不足4位時必須加0補齊4位。

數制轉換的一般化

1)R進制轉換成十進制

任意R進制數據按權展開、相加即可得十進制數據。例如:N=1101.0101B=1*2^3+1*2^2+0*2^1+1*2^0+0*2^-1+1*2^-2+0*2^-3+1*2^-4=8+4+0+1+0+0.25+0+0.0625=13.3125

N=5A.8H=5*16^1+A*16^0+8*16^-1=80+10+0.5=90.5

2)十進制轉換R進制

十進制數轉換成R進制數,須将整數部分和小數部分分别轉換.

1.整數轉換——---除R取餘法規則:(1)用R去除給出的十進制數的整數部分,取其餘數作為轉換後的R進制數據的整數部分最低位數字;(2)再用R去除所得的商,取其餘數作為轉換後的R進制數據的高一位數字;(3)重複執行(2)操作,一直到商為0結束。例如:115轉換成Binary數據和Hexadecimal數據,所以115=1110011B=73H

2.小數轉換————---乘R取整法規則:(1)用R去乘給出的十進制數的小數部分,取乘積的整數部分作為轉換後R進制小數點後第一位數字;(2)再用R去乘上一步乘積的小數部分,然後取新乘積的整數部分作為轉換後R進制小數的低一位數字;(3)重複(2)操作,一直到乘積為0,或已得到要求精度數位為止。

3.小數轉換——整數退位法:舉例:0.321d轉成二進制,由于321不是5的倍數,用取餘法、取整法可能要算很久,這時候我們可以采用整數退位法。原理如下:

n為轉成的二進制數的小數位數

(x)10=(y)2

(x)10*2^n=(y)2*2^n

D=(x)10*2^n:計算10進制數,取整

D→T轉成2進制數

(y)2=T/2^n=T*2^(-n),T退位,位數不足前端補零

舉例:

0.321轉成二進制數,保留7位

0.321*2^7=41.088,取整數41

41=32+8+1即100000+1000+1=101001

退位,因隻有6位而要求保留7位,所以是0.0101001

用在線轉換工具校驗,正确

and、or、xor運算

所有進制的and(和)、or(或)、xor(異或)運算都要轉化為二進制進行運算,然後對齊位數,進行運算,具體的運算方法和普通的and、or、xor相同,如:1and1=1,1and0=0,0and0=0,1or1=1,1or0=1,0or0=0,1xor1=0,1xor0=1,0xor0=0。就是一般的二進制運算。

如:35(H)and5(O)=110101(B)and101(B)=101(B)=5(O)

上一篇:舒爾特方格

下一篇:客戶關系管理理論

相關詞條

相關搜索

其它詞條