《補充內(nèi)容:預備知識很過分》由會員分享,可在線閱讀,更多相關(guān)《補充內(nèi)容:預備知識很過分(25頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、*,單擊此處編輯母版標題樣式,單片機原理與接口技術(shù),付會凱,新鄉(xiāng)學院,第1章 預備知識(數(shù)制與碼制),1.1 進位計數(shù)制及各計數(shù)制間的轉(zhuǎn)換,1.2 二進制數(shù)的運算,1.3 帶符號數(shù)的表示方法 原碼、反碼、補碼,1.4 定點數(shù)與浮點數(shù),1.5 BCD碼和ASCII碼,進位計數(shù)制及其相互轉(zhuǎn)換,十進制、二進制、八進制和十六進制采用的都是進位計數(shù)制,進位計數(shù)制中用少量數(shù)碼按次序排列成數(shù)位,并按由低到高的進位方式進行計數(shù)。,基數(shù),和,位,權(quán),是進位十進制的兩個基本要素。,基數(shù),R(Radix,),:是進位計數(shù)制中所用數(shù)碼的個數(shù),基數(shù)為,r,的進位計數(shù)制中需要,R,個數(shù)碼,每個數(shù)位計滿,R,就向高位進一,
2、即“逢,R,進一”。,位權(quán),W(Weight,),:在進位計數(shù)制表示的數(shù)中,同一數(shù)字處在不同位置表示不同的值,它所表示的值是該數(shù)字乘以一個由它所處位置所決定的常數(shù),這一常數(shù)就是該數(shù)位所具有的位權(quán)。,R,進制數(shù)各位的權(quán)是以,R,為底的冪。,1.1 進位計數(shù)制及各計數(shù)制間的轉(zhuǎn)換,進位計數(shù)制及其相互轉(zhuǎn)換,任何一個R進制數(shù)N可以表示為:,若,R=10,,,則十進制數(shù),其各位的權(quán)是以,10,為底的冪;,若,R=2,,,則是二進制數(shù),其各位的權(quán)是以,2,為底的冪;,若,R=8,,,則是八進制數(shù),其各位的權(quán)是以,8,為底的冪,八進制中共有八個數(shù)碼:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7
3、,;,若,R=16,,,則是十六進制數(shù),其各位的權(quán)是以,16,為底的冪,十六進制中共有,16,個數(shù)碼:,0,、,1,、,2,、,3,、,4,、,5,、,6,、,7,、,8,、,9,、,A,、,B,、,C,、,D,、,E,、,F,。,為了明確表示一個數(shù)所采用的進位計數(shù)制,可以該數(shù)的后面加上下標,(B),、,(O),、,(D),、,(H),,,分別表示該數(shù)為二進制、八進制、十進制和十六進制,進位計數(shù)制及其相互轉(zhuǎn)換,R進制數(shù)轉(zhuǎn)換為十進制數(shù),按照公式展開求和,例1,.分別把二進制數(shù)1011.01和十六進制數(shù)F0.C用十進制表示,十進制數(shù)轉(zhuǎn)換為R進制數(shù),整數(shù)部分和小數(shù)部分分別進行轉(zhuǎn)換,整數(shù)部分的轉(zhuǎn)換步驟
4、,:,把R寫成十進制數(shù);,將N除以R,記錄商和余數(shù),并用R進制表示余數(shù),這余數(shù)便是用R進制表示的數(shù)的最低位數(shù)字;,把上次的商進行中所述除以R取余的運算,用R進制表示余數(shù);重復這種運算直到商為0,這時的余數(shù)即為十進制數(shù)N用R進制表示時的最高位數(shù)字。,(除基取余),十進制數(shù)轉(zhuǎn)換為R進制數(shù),例2,.把十進制數(shù)103用二進制表示,例3,.把十進制數(shù)506用十六進制表示,小數(shù)部分的轉(zhuǎn)換步驟,:,把R寫成十進制數(shù);,將N乘以R,記錄積的整數(shù)部分和小數(shù)部分,并用R進制表示整數(shù)部分,該整數(shù)即為轉(zhuǎn)換后R進制小數(shù)的最高位;,把上次積的小數(shù)部分進行中所述乘以R取整的運算,用R進制表示積的整數(shù)部分;重復這種運算直到積
5、的小數(shù)部分為0,或者達到所要求的位數(shù),這時的整數(shù)部分即為十進制數(shù)N轉(zhuǎn)換成R進制小數(shù)的最低位。,(乘基取整),十進制數(shù)轉(zhuǎn)換為R進制數(shù),例4,.把十進制0.8125用八進制表示,二進制與八進制、十六進制的相互轉(zhuǎn)換,從二進制轉(zhuǎn)換成十六進制時,從小數(shù)點位置開始,整數(shù)部分向左,小數(shù)部分向右,每四位二進制數(shù)為一組用一位十六進制的數(shù)字來表示,不足四位的用0補足,就是相應(yīng)十六進制的表示。,從二進制轉(zhuǎn)換成八進制時,從小數(shù)點位置開始,整數(shù)部分向左,小數(shù)部分向右,每三位二進制數(shù)為一組用一位八進制的數(shù)字來表示,不足三位的用0補足,就是相應(yīng)八進制的表示。,例5,.把二進制用十六進制表示,例6,.把八進制數(shù)62.31用二
6、進制表示,1.2 二進制數(shù)的運算,二進制數(shù)的算術(shù)運算,二進制數(shù)不僅物理上容易實現(xiàn),而且算術(shù)運算也比較簡單,其加、減法遵循“逢2進1”、“借1當2”的原則。,以下通過4個例子說明二進制數(shù)的加、減、乘、除運算過程。,1.二進制加法,1 位二進制數(shù)的加法規(guī)則為:,000 011 101 1110 (有進位),3.二進制乘法,1 位二進制數(shù)的乘法規(guī)則為:,000 010 100 111,2.二進制減法,1 位二進制數(shù)的減法規(guī)則為:,101 110 000 011(有借位),二進制數(shù)的算術(shù)運算,2.二進制除法,二進制除法的運算過程類似于十進制除法的運算過程。,二進制數(shù)除法是二進制數(shù)乘法的逆運算,在沒有除
7、法指令的微型計算機中,常采用比較、相減、余數(shù)左移相結(jié)合的方法進行編程來實現(xiàn)除法運算。由于MCS-51系列單片機指令系統(tǒng)中包含有加、減、乘、除指令,因此給用戶編程帶來了許多方便,同時也提高了機器的運算效率。,二進制數(shù)的算術(shù)運算,2.“或”運算(OR),“或”運算又稱邏輯加,運算符為或。“或”運算的規(guī)則如下:,000 01101 111,1.“與”運算(AND),“與”運算又稱邏輯乘,運算符為或。“與”運算的規(guī)則如下:,000 01100 111,二進制數(shù)的邏輯運算,4.“異或”運算(XOR),“異或”運算的運算符為,其運算規(guī)則如下:,0 00 0 11 01 1 10,3.“非”運算(NOT),
8、“非”運算又稱邏輯非,如變量A的“非”運算記作 ?!胺恰边\算的規(guī)則如下:,二進制數(shù)的邏輯運算,1.3 帶符號數(shù)的表示方法原碼、反碼、補碼,符號數(shù)的表示(原碼、補碼與反碼),把二進制數(shù)的最高一位定義為符號位,符號位為,0,表示正數(shù),符號位為,1,表示負數(shù),這種在計算機中使用的、連同符號位一起數(shù)值化了的數(shù),稱為機器數(shù)。機器數(shù)所表示的真實的數(shù)值,稱為真值。對于符號數(shù),機器數(shù)常用的表示方法有原碼、反碼和補碼三種。數(shù),X,的原碼記作,X,原,,反碼記作,X,反,,補碼記作,X,補,。,最高位表示符號,數(shù)值位用二進制絕對值表示的方法,稱為原碼表示法,一個負數(shù)的原碼符號位保持不變,其余位取反就是機器數(shù)的另一
9、種表示方法,反碼表示法。正數(shù)的反碼與原碼相同。,將負數(shù)的反碼加1,則得到機器數(shù)的補碼表示。正數(shù)的補碼與原碼相同。,二進制數(shù)的補碼,最高位為符號位(0為正,1為負),正數(shù)的補碼和它的原碼相同,負數(shù)的補碼=數(shù)值位逐位求反+1,如,+5=(0 0101),-5=(1 1011),通過補碼,將減一個數(shù)用加上該數(shù)的補碼來實現(xiàn),二進制數(shù)的補碼,7 4=3,7+8=3(舍棄進位),4+8=12 產(chǎn)生進位的模,8是-4對模數(shù)12的補碼,二進制數(shù)的補碼,1110 0110=1000,(14-6=8),1110+1010=11000,=1000(舍棄進位),(14+10=8),0110+1010=2,4,1010
10、是-0110對,模,2,4,(16)的補碼,16,8,4,12,14,2,6,10,補碼加減法的運算規(guī)則,X,Y,補,=X,補,+,Y,補,其中X,Y為正負數(shù)均可,符號位參與運算。,模(module)就是一個計數(shù)系統(tǒng)的最大容量,其大小等于以進位計數(shù)制基數(shù)為底,以位數(shù)為指數(shù)的冪。凡是用器件進行的運算都是有模運算,運算結(jié)果超過模的部分被運算器自動丟棄。因此,當器件為n位時,有,,X=2,n,+X (mod 2,n,),不難驗證,,X,補,=2,n,+X (mod 2,n,),因此,,X,Y,補,=2,n,+(X,Y)(mod 2,n,),=(2,n,+X)+(2,n,+X),=X,補,+,Y,補,
11、補碼加減法的運算規(guī)則,例7,.設(shè)X=23,Y=-42,以2,8,為模,用補碼運算求X+Y和X-Y。,當運算結(jié)果超出補碼表示的數(shù)值范圍時,補碼運算就不正確了。這種現(xiàn)象稱為溢出。,對于n位補碼,當 時應(yīng)用補碼運算可以得到正確的結(jié)果,無符號數(shù)的表示,無符號數(shù)的最高位不是符號位而是數(shù)值的一部分,1.4 定點數(shù)與浮點數(shù),定點數(shù)的表示,1.定點整數(shù)表示法,小數(shù)點固定在最低數(shù)值位之后,機器中能表示的所有數(shù)都是整數(shù),這種方法稱之為定點整數(shù)表示法。當用n位表示數(shù)N時,1位為符號位,n1位為數(shù)值位,則N的取值范圍是:,2,n-1,N2,n-1,1,2.定點小數(shù)表示法,小數(shù)點固定在最高數(shù)值位之前,機器中能表示的所有
12、數(shù)即為純小數(shù),這種方法稱之為定點小數(shù)表示法。當用n位表示數(shù)N時,1位為符號位,n1位為數(shù)值位,則N的范圍是:,(12,1-n,)N12,1-n,浮點數(shù)的表示,任意一個二進制實數(shù)X都可以表示成如下一般格式:,10.01011101,2,+5,的階碼為+5,表示把尾數(shù)的小數(shù)點向右移動5位就是小數(shù)點的實際位置,規(guī)格化處理:整數(shù)部分必須是1,8421BCD碼,壓縮,BCD,碼的每一位用,4,位二進制表示,,00001001,表示,09,,一個字節(jié)表示兩位十進制數(shù)。,非壓縮,BCD,碼用一個字節(jié)表示一位十進制數(shù),高,4,位總是,0000,,低,4,位的,00001001,表示,09,。,1.5 BCD碼和ASCII碼,ASCII碼,采用7位二進制代碼對字符進行編碼,數(shù)字,09,的編碼是,01100000111001,,它們的高,3,位均是,011,,后,4,位正好與其對應(yīng)的二進制代碼相符。,英文字母,AZ,的,ASCII,碼從,1000001,(,41H,),開始順序遞增,字母,az,的,ASCII,碼從,1100001,(,61H,),開始順序遞增,這樣的排列對信息檢索十分有利。,美國標準信息交換代碼,1.5 BCD碼和ASCII碼,ASCII碼,