位權概念
對于形式化的進制表示,我們可以從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)



















