《微機原理教案3》由會員分享,可在線閱讀,更多相關《微機原理教案3(30頁珍藏版)》請在裝配圖網上搜索。
1、單擊以編輯,母版標題樣式,單擊以編輯母版文本樣式,第二級,第三級,第四級,第五級,*,碼制,原碼、反碼與補碼,第三講 計算機中的數制和碼制,主要內容,一、機器數與真值,二、無符號數與有符號數,三、有符號數的表示,原碼,反碼,補碼,一、機器數與真值(,1,),真值:,實際的數值(包括正負號)叫做,真值,。,如,:,+35,,,-1001110,B,,,-100101B,一、機器數與真值(,2,),機器數,:,機器數,:數在計算機中的表示;,在計算機中,數只能用二進制表示,符號也用二進制數位表示;,是存放在寄存器或儲存單元中的。,例如:,10000111,,,11001001,,,01100011
2、,二、無符號數與有符號數,無符號數:,全部二進制均代表數值,沒有符號位。,有符號數:,用最高位作為符號位,“,0”,代表“,+”,,“,1”,代表“,-,”,;其余數位用作數值位,代表數值。,如:,+35,化為有符號機器數,+,35,+,100011,B,0100011,轉換為,二進制,化成有符號數,(,00100011,),(,0000000000100011,),8位,16,位,三、有符號數的表示,原碼,反碼,補碼,1,、原碼,真值用二進制表示后,數的數值部分不變,在符號位上用“,0”,和“,1”,分別表示數的符號“,+”,和“,-,”,。,X,的原碼一般表示為,X,原,如,:,+,100
3、1001,-,1100100,01001001,11100100,x,x,原,2,、反碼,正數,的反碼:與原碼相同;,負數,的反碼:符號位為“,1”,,數值位按位取反。,X,的反碼一般表示為,X,反,如:,+,1001001,-,1100100,01001001,10011011,x,x,反,3,、補碼,引入補碼的目的,引入的思路,補碼,的求法,補碼的作用與效果,幾點說明,溢出,補碼,引入補碼的目的,將加、減運算簡化為單純的相加運算,以便于在計算機中實現各種運算,。,補碼,引入的思路(,1,),由鐘表撥表針的方法得到啟示;,例如:把表上的,8,點鐘改為,6,點鐘,方法二:,順時針撥,10,格,
4、方法一:,反時針撥,2,格,補碼,引入的思路(,2,),撥針方法小結:,8,-,2,=6,8+,10,=6,思考,:為什么會出現這種現象?計算機中是否也有這種現象?,(,表盤是圓的,可循環(huán)計時。,),方法二:,順時針撥,10,格,方法一:,反時針撥,2,格,補碼,引入的思路(,3,),計算機儲存一個數也有與鐘表相同的特點:,循 環(huán) 計 數,因此對于計算機,要計算像,8,-,2,這樣的減法式子,也可以化為加法形式來進行。,思考,:在計算機中,8,-,2,是否也可以化為,8+10,?,如果不行,那么應化為什么樣的式子?,補碼,引入的思路(,4,),不同之處,:,表計時的最大數是,12,計算機計數的
5、最大數不是,12,(,思考,:那么是多少呢?),我們把這個數稱為,模,計算機的模與字長有關。,8,位機的模是,2,8,=256,n位,模,=12,模,=,2,n,補碼,引入的思路(,5,),觀察鐘表撥針的兩種方法:,8,-,2,=6,8+,10,=6,我們可以看出,減去一個數,a,相當于加上(,模,-,a,),一樣,而在計算機中也有相同情況。,在,8,位字長的計算機中,減去一個數,a,相當于加上(,2,8,-,a,),一樣。,我們稱(,2,8,-,a,)為,a,的,補數,,其二進制表示形式稱為,補碼,。,補碼,補碼的求法(,1,),正數:與原碼相同;,負數,:“,求反加一,”,例:,x=+10
6、01100B,,,則,x,補,=01001100,B=x,原,x=,-,1001100B,,則,x,補,=10110100,B,x=,-,1001100,時,,x,補,=2,8,-,1001100B,=256,-,1001100B,=255,-,1001100B+1,=11111111B,-,1001100B+1,=10110100B,11111111,01001100,10110011,1,10110100,求反,加,1,補碼,補碼的求法(,2,),對于負數的補碼求法,還有另一個更快速的辦法:,符號位為,1,,真值中最后一個,1,以前的各位按位求反,而最后一個,1,及其后的,0,保持不變。,
7、11111111,01001100,10110011,1,10110100,符號位為,1,按位求反,最后一個,1,及其后的,0,不變,補碼,補碼的求法(,3,),課堂練習,1,、求出下列各數的補碼(,8,位),(1),67,(2)+1011001B,(3),45,10111101,01011001,11010011,補碼,補碼的作用與效果,用補碼表示計算機中的數后,加減運算均可統(tǒng)一為加法。,例:,設,x=+0000111,y=+0000100,計算式子:,x,y,(,先算出,x,補,=00000111,-,y,補,=,11111100,x,y=x+(,-,y),),+,00000011,1,自
8、然丟失,補碼運算:,00000111,x,補,11111100,-,y,補,x-y,補,手工驗算:,0000111,0000100,-,0000011,x,y,x-y,補碼,幾點補充說明(,1,),微機內部,帶符號數均用補碼表示。,采用補碼進行運算后,結果也是補碼,欲得真值,需作轉換。,轉換方法,0,開頭:將,0,換成“,+”,號,其余數位不變。,1,開頭:,1,換成“,-,”,號,其余,方法,1,:,減,1,求反,方法,2,:,求反加,1,補碼,幾點補充說明(,2,),如果已知,x,的,補碼,x,補,,則求,-,x,補,的方法是:,對,x,補,連同符號位一起求反加,1,例:,已知,+35,的
9、補碼是,00100011,,,則,-35,補,=11011101,補碼,幾點補充說明(,3,),用補碼運算時符號位也參與運算,有符號數與無符號數的運算是兼容的。,例:,10000110,00011010,+,10100000,二進制數相加,-,122,26,+,-,96,134,26,+,160,看成無符號數,看成補碼,出現問題,錯誤的結果:,11001011,10010001,01011100,-,0110101,-,1101111,+,-,53,-,111,+,+92,+1011100,-,164,思考:為什么出現了錯誤?,補碼,溢出,剛才出現的問題叫做,“,溢出,”,;,溢出的原因:,運
10、算結果超出了可表示的有符號數的范圍。,溢出只會出現在兩個同號數相加或兩個異號數相減的情況下。,思考:如何判別溢出與正常進位?,補碼,溢出的判別,(1),方法一:轉換為真值,判斷是否超出數值表示范圍。,方法二:根據最高位的進、借位情況進行判斷。,溢出:,“,有進無出,”,或,“,無進有出,”,正常:,“,有進有出,”,或,“,無進無出,”,補碼,溢出的判別,(2),10010011,10101101,/-,圖,c,無進有出,00010011,01101101,/-,圖,d,有進無出,溢出,溢出,10010011,11101101,/-,10010011,01001101,/-,圖,a,有進有出,
11、圖,b,無進無出,正常,正常,補碼,溢出的判別,(3),課堂練習,1,、請判斷下列,8,位補碼的運算是否會產生溢出?,11001001,11100111,10110000,有進有,出,無溢出,01100011,01001010,10101101,有,進無出,溢出,補 碼,小 結,真值,機器數,無符號數,有符號數,原碼,反碼,補碼,補碼的求法,由補碼求真值的方法,已知,x,補,求,-,x,補的方,法,補碼的作用,溢出,END,0,0,0,0,0,0,0,0,7,6,5,4,3,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,1,2,255,0,循環(huán)計數,