單片機匯編語(yǔ)言詳解
數制的概念
數制是人們利用符號進(jìn)行計數的科學(xué)方法。數制有很多種,在計算機中常用的數制有:十進(jìn)制,二進(jìn)制和十六進(jìn)制。
數制也稱(chēng)計數制,是指用一組固定的符號和統一的規則來(lái)表示數值的方法。計算機是信息處理的工具,任何信息必須轉換成二進(jìn)制形式數據后才能由計算機進(jìn)行處理,存儲和傳輸。十進(jìn)制數(Decimal)
人們通常使用的是十進(jìn)制。它的特點(diǎn)有兩個(gè):有0,1,2….9十個(gè)基本數字組成,十進(jìn)制數運算是按“逢十進(jìn)一”的規則進(jìn)行的. 在計算機中,除了十進(jìn)制數外,經(jīng)常使用的數制還有二進(jìn)制數和十六進(jìn)制數.在運算中它們分別遵循的是逢二進(jìn)一和逢十六進(jìn)一的法則.二進(jìn)制數(Binary)
二進(jìn)制數有兩個(gè)特點(diǎn):它由兩個(gè)基本數字0,1組成,二進(jìn)制數運算規律是逢二進(jìn)一。 為區別于其它進(jìn)制數,二進(jìn)制數的書(shū)寫(xiě)通常在數的右下方注上基數2,或加后面加B表示。 例如:二進(jìn)制數10110011可以寫(xiě)成(10110011)2,或寫(xiě)成10110011B,對于十進(jìn)制數可以不加注.計算機中的數據均采用二進(jìn)制數表示,這是因為二進(jìn)制數具有以下特點(diǎn): 1) 二進(jìn)制數中只有兩個(gè)字符0和1,表示具有兩個(gè)不同穩定狀態(tài)的元器件。例如,電路中有,無(wú)電流,有電流用1表示,無(wú)電流用0表示。類(lèi)似的還比如電路中電壓的高,低,晶體管的導通和截止等。 2) 二進(jìn)制數運算簡(jiǎn)單,大大簡(jiǎn)化了計算中運算部件的結構。 二進(jìn)制數的加法和乘法運算如下: 0+0=0 0+1=1+0=1 1+1=10 0×0=0 0×1=1×0=0 1×1=1八進(jìn)制數(Octal)
由于二進(jìn)制數據的基R較小,所以二進(jìn)制數據的書(shū)寫(xiě)和閱讀不方便,為此,在小型機中引入了八進(jìn)制。八進(jìn)制的基R=8=2^3,有數碼0、1、2、3、4、5、6、7,并且每個(gè)數碼正好對應三位二進(jìn)制數,所以八進(jìn)制能很好地反映二進(jìn)制。八進(jìn)制用下標8或數據后面加Q表示 例如:二進(jìn)制數據 ( 11 101 010 . 010 110 100 )2 對應 八進(jìn)制數據 ( 3 5 2 . 2 6 4 )8或352.264Q.十六進(jìn)制數(Hex)
由于二進(jìn)制數在使用中位數太長(cháng),不容易記憶,所以又提出了十六進(jìn)制數 十六進(jìn)制數有兩個(gè)基本特點(diǎn):它由十六個(gè)字符0~9以及A,B,C,D,E,F組成(它們分別表示十進(jìn)制數10~15),十六進(jìn)制數運算規律是逢十六進(jìn)一,即基R=16=2^4,通常在表示時(shí)用尾部標志H或下標16以示區別。 例如:十六進(jìn)制數4AC8可寫(xiě)成(4AC8)16,或寫(xiě)成4AC8H。數的位權概念
對于形式化的進(jìn)制表示,我們可以從0開(kāi)始,對數字的各個(gè)數位進(jìn)行編號,即個(gè)位起往左依次為編號0,1,2,……;對稱(chēng)的,從小數點(diǎn)后的數位則是-1,-2,…… 進(jìn)行進(jìn)制轉換時(shí),我們不妨設源進(jìn)制(轉換前所用進(jìn)制)的基為R1,目標進(jìn)制(轉換后所用進(jìn)制)的基為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 ?。ㄓ捎诖颂幉豢蛇x擇字體,說(shuō)明如下:An,A2,A-1等符號中,n,2,-1等均應改為下標,而上標的冪次均用^作為前綴) 舉例: 一個(gè)十進(jìn)制數110,其中百位上的1表示1個(gè)10^2,既100,十位的1表示1個(gè)10^1,即10,個(gè)位的0表示0個(gè)100,即0。 一個(gè)二進(jìn)制數110,其中高位的1表示1個(gè)2^2,即4,低位的1表示1個(gè)2^1,即2,最低位的0表示0個(gè)2^0,即0。 一個(gè)十六進(jìn)制數110,其中高位的1表示1個(gè)16^2,即256,低位的1表示1個(gè)16^1,即16,最低位的0表示0個(gè)16^0,即0。 可見(jiàn),在數制中,各位數字所表示值的大小不僅與該數字本身的大小有關(guān),還與該數字所在的位置有關(guān),我們稱(chēng)這關(guān)系為數的位權。 十進(jìn)制數的位權是以10為底的冪,二進(jìn)制數的位權是以2為底的冪,十六進(jìn)制數的位權是以16為底的冪。數位由高向低,以降冪的方式排列。進(jìn)數制之間的轉換
1.二進(jìn)制數、十六進(jìn)制數轉換為十進(jìn)制數(按權求和) 二進(jìn)制數、十六進(jìn)制數轉換為十進(jìn)制數的規律是相同的。把二進(jìn)制數(或十六進(jìn)制數)按位權形式展開(kāi)多項式和的形式,求其最后的和,就是其對應的十進(jìn)制數——簡(jiǎn)稱(chēng)“按權求和”. 例如:把(1001.01)2轉換為十進(jìn)制數。 解:(1001.01)2 =1*8+4*0+2*0+1*1+0*(1/2)+1*(1/4) =8+0+0+1+0+0.25 =9.25 把(38A.11)16轉換為十進(jìn)制數 解:(38A.11)16 =3×16的2次方+8×16的1次方+10×16的0次方+1×16的-1次方+1×16的-2次方 =768+128+10+0.0625+0.0039 =906.0664 2.十進(jìn)制數轉換為二進(jìn)制數,十六進(jìn)制數(除2/16取余法) 整數轉換.一個(gè)十進(jìn)制整數轉換為二進(jìn)制整數通常采用除二取余法,即用2連續除十進(jìn)制數,直到商為0,逆序排列余數即可得到――簡(jiǎn)稱(chēng)除二取余法. 例:將25轉換為二進(jìn)制數 解:25÷2=12 余數1 12÷2=6 余數0 6÷2=3 余數0 3÷2=1 余數1 1÷2=0 余數1 所以25=(11001)2 同理,把十進(jìn)制數轉換為十六進(jìn)制數時(shí),將基數2轉換成16就可以了. 例:將25轉換為十六進(jìn)制數 解:25÷16=1 余數9 1÷16=0 余數1 所以25=(19)16 3.二進(jìn)制數與十六進(jìn)制數之間的轉換 由于4位二進(jìn)制數恰好有16個(gè)組合狀態(tài),即1位十六進(jìn)制數與4位二進(jìn)制數是一一對應的.所以,十六進(jìn)制數與二進(jìn)制數的轉換是十分簡(jiǎn)單的. (1)十六進(jìn)制數轉換成二進(jìn)制數,只要將每一位十六進(jìn)制數用對應的4位二進(jìn)制數替代即可――簡(jiǎn)稱(chēng)位分四位. 例:將(4AF8B)16轉換為二進(jìn)制數. 解: 4 A F 8 B 0100 1010 1111 1000 1011 所以(4AF8B)16=(1001010111110001011)2 (2)二進(jìn)制數轉換為十六進(jìn)制數,分別向左,向右每四位一組,依次寫(xiě)出每組4位二進(jìn)制數所對應的十六進(jìn)制數――簡(jiǎn)稱(chēng)四位合一位. 例:將二進(jìn)制數(000111010110)2轉換為十六進(jìn)制數. 解: 0001 1101 0110 1 D 6 所以(111010110)2=(1D6)16 轉換時(shí)注意最后一組不足4位時(shí)必須加0補齊4位數制轉換的一般化
1)R進(jìn)制轉換成十進(jìn)制 任意R進(jìn)制數據按權展開(kāi)、相加即可得十進(jìn)制數據。 例如:N = 1101.0101B = 1*2^3+1*2^2+0*21+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.8 H = 5*161+A*160+8*16-1 = 80+10+0.5 = 90.5 2)十進(jìn)制轉換R 進(jìn)制 十進(jìn)制數轉換成R 進(jìn)制數,須將整數部分和小數部分分別轉換. 1.整數轉換----除R 取余法 規則:(1)用R 去除給出的十進(jìn)制數的整數部分,取其余數作為轉換后的R 進(jìn)制數據的整數部分最低位數字; (2)再用2去除所得的商,取其余數作為轉換后的R 進(jìn)制數據的高一位數字; (3)重復執行(2)操作,一直到商為0結束。 例如: 115 轉換成 Binary數據和Hexadecimal數據 (圖2-4) 所以 115 = 1110011 B = 73 H 2.小數轉換-----乘R 取整法 規則:(1)用R 去除給出的十進(jìn)制數的小數部分,取乘積的整數部分作為轉換后R 進(jìn)制小數點(diǎn)后第一位數字; (2)再用R 去乘上一步乘積的小數部分,然后取新乘積的整數部分作為轉換后R 進(jìn)制小數的低一位數字; (3)重復(2)操作,一直到乘積為0,或已得到要求精度數位為止。單片機相關(guān)文章:單片機教程
單片機相關(guān)文章:單片機視頻教程
單片機相關(guān)文章:單片機工作原理
評論