單片機技術(shù)與應(yīng)用項目式教程 課件 項目1 數(shù)制初步_第1頁
單片機技術(shù)與應(yīng)用項目式教程 課件 項目1 數(shù)制初步_第2頁
單片機技術(shù)與應(yīng)用項目式教程 課件 項目1 數(shù)制初步_第3頁
單片機技術(shù)與應(yīng)用項目式教程 課件 項目1 數(shù)制初步_第4頁
單片機技術(shù)與應(yīng)用項目式教程 課件 項目1 數(shù)制初步_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《單片機技術(shù)與應(yīng)用項目式教程》—數(shù)制及轉(zhuǎn)換數(shù)制及轉(zhuǎn)換1、本任務(wù)學(xué)習(xí)要求及知識要點:1)、理解二進制、八進制、十六進制的計數(shù)方法,能完成數(shù)制之間的轉(zhuǎn)換。2)、理解幾種數(shù)制間的關(guān)系。2、常用數(shù)制:1)、十進制:以10為基數(shù),逢十進一,借一當十。使用的數(shù)碼為:0、1、2、3、4、5、6、7、8、9共十個。式中,n為整數(shù)的位數(shù);m為小數(shù)點的位數(shù);

為第i位的系數(shù),可以是十進制數(shù)碼中的任意一個;

為第i位的權(quán)。=3×103+9×102+2×101+0×100+5×10-1+6×10-2例如:2)、二進制:以2為基數(shù),逢二進一,借一當二。使用的數(shù)碼為:0和1兩個,任意一個二進制數(shù)B都可表示為:式中,

為第i位的系數(shù),僅可取1或0;

為第i位的權(quán)。3)、十六進制:以16為基數(shù),逢十六進一,借一當十六。使用的數(shù)碼為:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F共16個,字母不區(qū)分大小寫。任意一個十六進制數(shù)H都可以表示為:式中,

為第i位的系數(shù),可以是十六進制數(shù)碼中的任意一個;

為第i位的權(quán)。=1×23+1×22+0×20+1×2-1+1×2-2(A87.BF)16=10×162+8×161+7×160+11×16-1+15×16—2例如:例如:數(shù)制及轉(zhuǎn)換2)、八進制:以8為基數(shù),逢八進一,借一當八。使用的數(shù)碼為:0、1、2、3、4、5、6、7共八個,任意一個八進制數(shù)Q都可表示為:式中,

為第i位的系數(shù),可以是八進制數(shù)中的任意一個;

為第i位的權(quán)。3、不同數(shù)制之間的相互轉(zhuǎn)換1、十進制轉(zhuǎn)換為二、十六進制數(shù)。

十進制數(shù)轉(zhuǎn)換為二、十六進制數(shù)分整數(shù)、小數(shù)兩部分實現(xiàn)。對整數(shù)部分,連續(xù)除以轉(zhuǎn)換進制制基數(shù),直到商為0,每除一次取一個余數(shù),自下向上取余數(shù)值;對小數(shù)部分,用轉(zhuǎn)換進制的基數(shù)乘以小數(shù)部分,直至小數(shù)為0或達到轉(zhuǎn)換精度要求的位數(shù)。每乘一次去一次整數(shù),自上向下取整數(shù)值。(73.02)8=7×81+3×80+0×8-1+2×8-2例如:(26.306)10=(11010.0101)2例如:數(shù)制及轉(zhuǎn)換2、二進制數(shù)與八進制數(shù)之間的相互轉(zhuǎn)換八進制數(shù)轉(zhuǎn)換為二進制數(shù):先將每位八進制數(shù)寫成對應(yīng)的三位二進制數(shù),然后再按原來的順序排列即可。

例如:二進制數(shù)轉(zhuǎn)換為八進制數(shù):對整數(shù)部分,從最低位開始,按三位一組分組,不足三位前面補0;對小數(shù)部分,從最高位開始按三位一組分組,不足三位后面補0.然后每組以其對應(yīng)的八進制數(shù)代替,排列順序不變。

例如:3、二進制數(shù)與十六進制數(shù)之間的相互轉(zhuǎn)換由于,所以1位十六進制數(shù)可以表示為相應(yīng)的4位二進制數(shù),它們之間的轉(zhuǎn)換方法與八進制數(shù)與二進制數(shù)的轉(zhuǎn)換相似,只是按四位一組分組。

例如:通過二進制變量還能完成八進制數(shù)與十六進制之間的轉(zhuǎn)換。

例如:數(shù)制及轉(zhuǎn)換4、其它進制轉(zhuǎn)換為十進制數(shù)。用按權(quán)展開求和的方法即可。

例如:數(shù)制及轉(zhuǎn)換5、數(shù)制的表示在匯編語言中通常以數(shù)字后面加不同字母來區(qū)分:十進制:896D或896二進制:110100011B十六進制:3AH,0FEH(首位為字符A-F是,必須前面加0.)八進制:756Q在C語言中通常不用二進制表示,規(guī)則為:十進制與平時十進制相同,8進制以0開頭,十六進制以0x開頭。十進制:896D或896十六進制:0x3AH,0xFEH八進制:756Q

數(shù)制及轉(zhuǎn)換各數(shù)制的對照關(guān)系十進制八進制二進制十六進制00000001100011220010233001134401004550101566011067701117810100089111001910121010A11131011B12141100C13151101D14161110E15171111F數(shù)制及轉(zhuǎn)換謝謝觀看!《單片機技術(shù)與應(yīng)用項目式教程》—機器數(shù)與真值機器數(shù)與真值1、本任務(wù)學(xué)習(xí)要求及知識要點:1、掌握帶符號數(shù)的表示方法,以及幾種常用編碼。計算機以補碼形式進行運算,可以將減法變換為有符號數(shù)的加法,簡化了計算。2、計算的帶符號數(shù):二進制中只有“0”和“1”,用“0”表示正數(shù),用“1”表示為負數(shù)。由此,一個二進制數(shù),連同符號位在內(nèi)作為一個數(shù)據(jù),稱之為機器數(shù),它是計算機能直接識別的數(shù);而用“+”“-”號分別表示正數(shù)和負數(shù)的數(shù)據(jù),稱之為真值。以八位機為例:+127的機器數(shù)為0111111。-127的機器數(shù)為1111111B。

符號位

數(shù)值位對于8位來說,除了符號位,最大只能有7個數(shù)值位。所以八位二進制原碼能表示數(shù)的范圍為:-127~127。在計算機中常用的機器數(shù)有原碼、反碼、補碼三種形式:機器數(shù)與真值原碼對于帶符號數(shù),正數(shù)的符號位用0表示,負數(shù)的符號位用1表示,這種表示法稱為原碼。如:[+97]原=01100001B[-97]原=11100001B在-127~+127范圍內(nèi),我們在數(shù)值的前面加符號位即可,原碼中,數(shù)值“0”究竟有兩種表示法,

即:[+0]原=000000B

[-0]原=1000000B

原碼表示法簡單易懂,且與真值轉(zhuǎn)換方便,但是,當兩個異號數(shù)相加或兩個同號數(shù)相減時,就要進行減法運算。而在計算機中的微處理器一般只有加法器,而沒有減法器,所以為了把減法運算變?yōu)榧臃ㄟ\算就引入了反碼和補碼。機器數(shù)與真值2.反碼反碼與補碼要考慮兩種情況:正數(shù)與負數(shù)。1)正數(shù)的反碼:與正數(shù)的原碼相同,最高位為符號位,其余則為數(shù)值位。

如:

[+97]反=0100001B

符號位

數(shù)值位2)

負數(shù)的反碼:保持其原碼的符號位不變,即最高位不變,數(shù)值位則按位取反。例

如:[-97]原=1100001B[-97]反=1011110B反碼所能表示的數(shù)值范圍,對于八位機來說為-127~+127;對0也有兩種表示法。

即:[+0]反=0000000B[-0]反=1111111B機器數(shù)與真值3.補

碼正數(shù)的補碼與正數(shù)的原碼相等;負數(shù)的補碼為其反碼末位加1而形成。例

如:[+97]補=[+97]原=0100001B[-97]補=[-97]反+1=10011110+1=10101111B例:已知[-97]補=1001111,求[[-97]補]樸=?

解:將補碼除符號位外逐位取反后,得1100000,則:[[-97]補]補=1100000+1=1100001B=[-97]原

綜上所述,可以總結(jié)出(以X表示任意數(shù)):1)[[X]補]補=[X]原。2)[+0]補=[-0]補=00000000B。3)對于正數(shù):[X]原=[X]反=[X]補。對于負數(shù):原碼:反碼:補碼。機器數(shù)與真值3、計算機的溢出:對于八位機而言,二進制補碼表示的范圍是-128(1000000B)~+127(0111111B),小于-128,大于+127的數(shù)稱之為溢出。溢出是指超出計算機所能表示數(shù)的范圍。當不帶符號數(shù)進行加減運算時,當數(shù)值最高位出現(xiàn)了進位或借位,統(tǒng)稱進位。帶符號數(shù)有一位符號位,所以其范圍是-128(0000000B)~+127(0111111B);而無符號數(shù)的最高位也是數(shù)值位,所以其范圍才是0(0000000B)~255(1111111B)。例

如:127+129=256(>255)計算機采用二進制加法運算規(guī)則,從最低位開始逐位相加。即:127=01111111B

+129=0000001B

進位→10000000B

溢出

計算機對帶符號數(shù)進行加減運算時,均采用補碼形式進行,其結(jié)果也仍為補碼,但進位與溢出并不一致,只有絕對值增大才有可能有溢出。機器數(shù)與真值補碼的運算規(guī)則。1)補碼的加法運算規(guī)則[X+Y]補=[X]補+[Y]補2)補碼的減法運算規(guī)則[X-Y]補=[X+(-Y)]補=[X]補+[-Y]補其中[-Y]可由[Y]樸的符號位和數(shù)值位全取反加1求得1.兩個正數(shù)求和

1)54+46=100計算機采用補碼運算:[54]補:00110110B+[46]補:00101110B01100100B兩個正數(shù)相加,運算結(jié)果仍為正數(shù)(最高位符號位仍然為“0”),同時考慮補碼范圍-128<100<+127,不超過規(guī)定的表述范圍,表明結(jié)果正確。機器數(shù)與真值2)110+20=130[110]補:01101110B+[20]補:00010100B10000010B兩個正數(shù)相加,運算結(jié)果已為負數(shù)(最高位符號位變?yōu)椤?”),同時130>+127,表明結(jié)果不正確。也就是說,正數(shù)加正數(shù)等于負數(shù),出錯!2.兩個負數(shù)求和(-54)+(-46)=100

[-54]原=10110110B[-54]反=1001001B

[-54]補=11001010B[-54]補:11001010B+[-46]補:11010010B

進位→110011100B

自然丟失[-46]原=10101110B[-46]反=11010001B[-46]補=11010010B根據(jù)[[X]補]補=[X]原,經(jīng)過再一次的求補后就可以得到原碼,所以按步驟先求得負數(shù)的反碼:11100011B。再求補碼:11100011B+1=11100100B=[-100]原。兩個負數(shù)相加,運算結(jié)果仍為負數(shù)(最高位符號位仍然為“1”),同時根據(jù)補碼表示數(shù)的范圍,-128<-100<+127,不超過規(guī)定的表示范圍,表明結(jié)果正確。(2)(-47)+(-85)=-132[-47]原=10101111B[-47]反=11010000B[-47]補=11010001B[-85]原=11010101B[-85]反=10101010B[-85]補=10101011B[-47]補:11010001B

+[-85]補:10101011B

進位→101111100B由于兩個負數(shù)相加得正數(shù),而且運算結(jié)果-132<-128,不在補碼的表示范圍內(nèi),所以結(jié)果不正確。也就是說,負數(shù)加負數(shù)等于正數(shù),出錯!機器數(shù)與真值機器數(shù)與真值3.兩數(shù)求差由于相減在補碼中也轉(zhuǎn)換為加法,這里我們就只看看計算的過程,其他算法與加法相同。(1)52-38=14X-Y=[[X-Y]補]補=[[X]補+[-Y]補]補=[[52]補+[-38]補]補[52]補=00110100B[-38]原=10100110B[-38]反=11011001B[-38]補=11011010B

[52]補:00110100B[-38]補:+11011010B進位→100001110B→=[14]補=14(2)38-52=-14

X-Y=[[X-Y]補]補=[[X]補+[-Y]樸]樸=[[38]補+[-52]補]補[38]補=00100110B[-52]原=10110100B[-52]反=11001011B[-52]補=11001100B[38]補:00100110B[-52]補:+11001100B11110010B根據(jù)補碼規(guī)則,因為是負數(shù),所以T110010B再求一次補:反碼:10001101B;補碼:10001110B→-14。計算機在做算術(shù)運算時,必須檢查溢出,以防止發(fā)生錯誤。機器數(shù)與真值4.溢出的判斷溢出的充分條件:正數(shù)+正數(shù)=負數(shù)、負數(shù)+負數(shù)=正數(shù),必定有溢出,結(jié)果錯誤;如果正數(shù)+正數(shù)=正數(shù)、負數(shù)+負數(shù)=負數(shù)或者正數(shù)+負數(shù),那么無溢出。單片機,是通過程序狀態(tài)寄存器PSW的進位:(借位)標志CY(CY=1,表示有進位;CY=0,無進位)和溢出標志OV(OV=,表示有溢出,否則無)的狀態(tài)來進行判斷的。

對于八位二進制數(shù)據(jù),一般稱最低位為第0位,最高位為第7位,采用左高右低的方式如下:位7位0D7D6D5D4D3D2D1D0

當進行加法運算時,若在位D7、D6均有進位或均無進位,即CY7

CY6=0(

表示異或),則OV=0,表示運算結(jié)果正確。若在位D7、D6中僅有一位有進位,另一位無進位,即CY7

CY6=1,則OV=1,表示得到兩個正數(shù)相加、和為負數(shù),或兩個負數(shù)相加、和為正數(shù)的錯誤結(jié)果當進行減法運算時,若在位D7、D6中均產(chǎn)生借位或均無借位,則0V=0,表示運算結(jié)果正確;

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論