第1章 基礎(chǔ)知識(2)-機器中符號數(shù)的表示法_第1頁
第1章 基礎(chǔ)知識(2)-機器中符號數(shù)的表示法_第2頁
第1章 基礎(chǔ)知識(2)-機器中符號數(shù)的表示法_第3頁
第1章 基礎(chǔ)知識(2)-機器中符號數(shù)的表示法_第4頁
第1章 基礎(chǔ)知識(2)-機器中符號數(shù)的表示法_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、2013-0811.1.2 機器中符號數(shù)的機器中符號數(shù)的表示表示法法 1. 機器數(shù)與真值(1)真值)真值 日常生活中遇到的數(shù),除了上述無符號數(shù)外,還有帶符號數(shù)。對日常生活中遇到的數(shù),除了上述無符號數(shù)外,還有帶符號數(shù)。對于帶符號的二進制數(shù),其正負符號如何表示呢?于帶符號的二進制數(shù),其正負符號如何表示呢? 我們可以用我們可以用“+”,“-”符號來表示數(shù)的符號。例如符號來表示數(shù)的符號。例如N1=+1101001B= +105;N2=-1101001B= -105 這樣用這樣用“+”,“-”符號表示的數(shù),叫做數(shù)的真值。符號表示的數(shù),叫做數(shù)的真值。 數(shù)的真值可以使用二進制形式,也可以使用十進制形式,或八

2、數(shù)的真值可以使用二進制形式,也可以使用十進制形式,或八進制數(shù)、十六進制數(shù)。進制數(shù)、十六進制數(shù)。2013-082真值就是利用正負號表示數(shù)的符號,數(shù)值部分位數(shù)的絕對值。真值就是利用正負號表示數(shù)的符號,數(shù)值部分位數(shù)的絕對值。例如:正數(shù)例如:正數(shù) 1234 +1234 正數(shù)正數(shù) 100H +100H正數(shù)正數(shù) 01011010B +01011010B負數(shù)負數(shù) 200 -200 負數(shù)負數(shù) 32H -32H 負數(shù)負數(shù) 01100100B -01100100B2013-083 在計算機中,我們只存儲在計算機中,我們只存儲0,1兩個代碼,數(shù)的符號沒辦法兩個代碼,數(shù)的符號沒辦法用用“+”,“-”符號來表示。符號來

3、表示。 為了表示數(shù)的符號,我們通常約定:為了表示數(shù)的符號,我們通常約定:用二進制數(shù)的最高位用二進制數(shù)的最高位表示數(shù)的符號表示數(shù)的符號。 這時最高位叫做符號位。這時最高位叫做符號位。 規(guī)定用規(guī)定用“0”表示正,表示正,“1”表示負表示負 。 一個數(shù)在機器中用最高位表示數(shù)的符號,其它位表示數(shù)值的一個數(shù)在機器中用最高位表示數(shù)的符號,其它位表示數(shù)值的大小的這種表示形式,叫做機器數(shù)。大小的這種表示形式,叫做機器數(shù)。 這樣對于這樣對于n位二進制數(shù),如果它是一個帶符號的數(shù),則最高位二進制數(shù),如果它是一個帶符號的數(shù),則最高位位Bn-1就表示數(shù)的符號,剩下的就表示數(shù)的符號,剩下的n-1位表示數(shù)的大小。位表示數(shù)的

4、大小。(2)機器數(shù))機器數(shù)2013-084 例如對于一個字節(jié)型二進制數(shù)來說,例如對于一個字節(jié)型二進制數(shù)來說,n=8共有共有8位,位,D7位位為符號位,為符號位,D6 D0位為數(shù)值位位為數(shù)值位。 簡單的說,簡單的說,機器數(shù)就是數(shù)據(jù)在機器中的二進制表示形式。機器數(shù)就是數(shù)據(jù)在機器中的二進制表示形式。 機器數(shù)所表示的值稱為該機器數(shù)的機器數(shù)所表示的值稱為該機器數(shù)的“真值真值”。例如,一個帶符號的數(shù)例如,一個帶符號的數(shù) ,最高位為符號位,其它位為數(shù)的,最高位為符號位,其它位為數(shù)的值,它的真值為值,它的真值為機器數(shù)機器數(shù) 11101001B 真值真值 - 1101001B (-105) 01101110B

5、+1101110B (+110)2013-085 (3)帶符號數(shù)與無符號數(shù))帶符號數(shù)與無符號數(shù)用一位二進制位表示數(shù)的符號:用一位二進制位表示數(shù)的符號:0表示正數(shù),表示正數(shù),1表示負數(shù),表示負數(shù),這種表示數(shù)的方法,稱為這種表示數(shù)的方法,稱為帶符號數(shù)的表示方法帶符號數(shù)的表示方法。所表示的數(shù),。所表示的數(shù),叫做帶符號的數(shù)。叫做帶符號的數(shù)。帶符號的數(shù)其最高位為符號位。帶符號的數(shù)其最高位為符號位。 如果將全部有效位都用來表示數(shù)的大小,這種數(shù)的表示方如果將全部有效位都用來表示數(shù)的大小,這種數(shù)的表示方法,法,叫無符號數(shù)的表示方法,所表示的數(shù),叫無符號數(shù)。叫無符號數(shù)的表示方法,所表示的數(shù),叫無符號數(shù)。數(shù)據(jù)在機

6、器中的表示,可以使用不同的碼制數(shù)據(jù)在機器中的表示,可以使用不同的碼制主要有:原主要有:原碼、反碼、補碼、移碼。碼、反碼、補碼、移碼。2013-0862. 原碼原碼用最高位表示數(shù)的符號(用最高位表示數(shù)的符號(0表示表示+,1表示表示-),數(shù)值部分用數(shù)的),數(shù)值部分用數(shù)的絕對值表示,這樣的編碼叫做源碼。絕對值表示,這樣的編碼叫做源碼。對于對于用用N N位二進制表示的數(shù)據(jù),最高位表示符號位,剩余的位二進制表示的數(shù)據(jù),最高位表示符號位,剩余的N-1N-1位表示數(shù)的絕對值。位表示數(shù)的絕對值。例如:一個數(shù)用例如:一個數(shù)用8 8位二進制表示位二進制表示X X1 1=105=+01101001B X=105=

7、+01101001B X1 原原=0110 1001B=0110 1001BX2=-105=-01101001B105=-01101001B X2原原=1110 1001B1110 1001B2013-087 例如,當(dāng)機器字長當(dāng)機器字長n=8時, +0原原=00000000B -0原原=1000 0000B +8原原=00001000B -8原原=1000 1000B +127原原=01111111B -127原原=1111 1111B 當(dāng)機器字長當(dāng)機器字長n=16時,時, +0原原=0000 0000 0000 0000B -0原原=1000 0000 0000 0000B +8原原=000

8、0 0000 0000 1000B -8原原=1000 0000 0000 1000B +32767原原=0111 1111 1111 1111B -32767原原=1111 1111 1111 1111B 2013-088可以看出可以看出8位二進制位二進制原碼原碼表示數(shù)的范圍為表示數(shù)的范圍為 ,16位二進制原碼表示數(shù)的范圍為位二進制原碼表示數(shù)的范圍為 ;n位原碼的數(shù)據(jù)表示范圍位原碼的數(shù)據(jù)表示范圍 : -( 2n-1-1 ) +(2n-1-1)“0”的原碼有兩種表示法:的原碼有兩種表示法:00000000表示表示+0,10000000表示表示-0。 -127+127是真值是真值2013-089

9、 原碼表示法簡單直觀,且與真值的轉(zhuǎn)換很方便,但不便于原碼表示法簡單直觀,且與真值的轉(zhuǎn)換很方便,但不便于在計算機中進行加減運算。在計算機中進行加減運算。u如進行兩數(shù)相加,必須先判斷兩個數(shù)的符號是否相同。如進行兩數(shù)相加,必須先判斷兩個數(shù)的符號是否相同。如果相同,則進行加法運算,否則進行減法運算。如果相同,則進行加法運算,否則進行減法運算。u如進行兩數(shù)相減,如進行兩數(shù)相減,除了除了判斷兩個數(shù)符號是否相同外,還判斷兩個數(shù)符號是否相同外,還必須必須比較兩數(shù)的絕對值大小,再由大數(shù)減小數(shù),結(jié)果的符號要和絕比較兩數(shù)的絕對值大小,再由大數(shù)減小數(shù),結(jié)果的符號要和絕對值大的數(shù)的符號一致對值大的數(shù)的符號一致。按上述運

10、算方法設(shè)計的算術(shù)運算電路很復(fù)雜按上述運算方法設(shè)計的算術(shù)運算電路很復(fù)雜。 。 2013-0810設(shè)數(shù)設(shè)數(shù)x的反碼記作的反碼記作x反反,如機器字長為,如機器字長為n,則反碼定義如下:,則反碼定義如下: 0) 12(|) 12(12011xxxxxnnn反 正數(shù)的反碼與其原碼相同。例如,當(dāng)機器字長正數(shù)的反碼與其原碼相同。例如,當(dāng)機器字長n=8時:時: +0反反=+0原原=00000000B +127反反=+127原原=01111111B當(dāng)機器字長當(dāng)機器字長n=16時:時: +8反反=+8原原=0000000000001000B +127反反=+127原原=0000000001111111B 3. 反

11、碼反碼2013-0811 負數(shù)的反碼是在原碼基礎(chǔ)上,符號位不變(仍為負數(shù)的反碼是在原碼基礎(chǔ)上,符號位不變(仍為1),數(shù)值位),數(shù)值位按位取反。例如,當(dāng)機器字長按位取反。例如,當(dāng)機器字長n=8時:時: -0反反=(28-1)-0=11111111B -127反反=(28-1)-127=10000000B 反碼表示數(shù)的范圍:反碼表示數(shù)的范圍: 12) 12(11nnx例如:例如:8位二進制反碼位二進制反碼表示數(shù)的范圍為:表示數(shù)的范圍為:, 16位二進制反碼位二進制反碼表示數(shù)的范圍為:表示數(shù)的范圍為:;“0”的反碼有兩種表示法:的反碼有兩種表示法:00000000表示表示+0,11111111表示表

12、示-0。2013-0812設(shè)數(shù)設(shè)數(shù)x的補碼記作的補碼記作x補補,如機器字長為,如機器字長為n,則補碼定義如下:,則補碼定義如下: 02|212011xxxxxnnn補正數(shù)的補碼與其原碼、反碼相同。例如,當(dāng)機器字長正數(shù)的補碼與其原碼、反碼相同。例如,當(dāng)機器字長n=8時:時:+8補補=+8反反=+8原原=00001000B+127補補=+127反反=+127原原=01111111B當(dāng)機器字長當(dāng)機器字長n=16時:時:+8補補=+8反反=+8原原=0000000000001000B+127補補=+127反反=+127原原=0000000001111111B 4. 補碼補碼2013-0813 負數(shù)的補

13、碼是在原碼基礎(chǔ)上,符號位不變(仍為負數(shù)的補碼是在原碼基礎(chǔ)上,符號位不變(仍為1),),數(shù)值數(shù)值部分按位取反部分按位取反,末位加末位加1(也就是(也就是在反碼基礎(chǔ)上末位加在反碼基礎(chǔ)上末位加1)。 例如,當(dāng)機器字長例如,當(dāng)機器字長n=8時:時:-8原原=10001000B-127原原=11111111B-8反反=11110111B-127反反=10000000B-8補補=28-8=11111000B-127補補=28-127=10000001B補碼的表示范圍:補碼的表示范圍:12211nnx2013-0814例如:例如: 8位二進制補碼位二進制補碼表示數(shù)的范圍為:表示數(shù)的范圍為:, 16位二進制補

14、碼表示數(shù)的范圍為:位二進制補碼表示數(shù)的范圍為:對于補碼表示法,對于補碼表示法,0 只有一種表示方法只有一種表示方法 (以(以8位字長為例)位字長為例) 0000 0000B如果一個補嗎如果一個補嗎 1000 0000B 它的真值?它的真值?最高位最高位D7=1,表示是負數(shù),表示是負數(shù),數(shù)值部分數(shù)值部分 000 0000 取反取反+1 111 1111+1=1000 0000 1282013-08155. n位二進制數(shù)的表示范圍位二進制數(shù)的表示范圍(1) 8位二進制數(shù)的表示范圍位二進制數(shù)的表示范圍(2) 8位二進制數(shù)的原碼、反碼和補碼如下表所示。位二進制數(shù)的原碼、反碼和補碼如下表所示。 二進制數(shù)

15、二進制數(shù) 無符號十進制數(shù)無符號十進制數(shù)帶帶 符符 號號 數(shù)數(shù)原碼原碼反碼反碼補碼補碼0000 00000000 00010000 0010 0111 11100111 11111000 00001000 0001 1111 11011111 11101111 1111012 126127128129 253254255+0+1+2 +126+127-0-1 -125-126-127+0+1+2 +126+127-127-126 -2-1-0+0+1+2 +126+127-128-127 -3-2-12013-0816對于對于8位二進制數(shù)位二進制數(shù)00000000B11111111B源碼表示范圍

16、:源碼表示范圍: 11111111B 01111111B: -(27-1) +(27-1) -127+127反碼表示范圍:反碼表示范圍:10000000 01111111 -(27-1) +(27-1) -127+127補碼表示范圍:補碼表示范圍:10000000 01111111 -(27) +(27-1) -128 +1272013-0817(2) n位二進制數(shù)的表示范圍位二進制數(shù)的表示范圍源碼表示范圍:源碼表示范圍:-(2n-1-1) +(2n-1-1) 例如例如n=16: -32767+32767反碼表示范圍:反碼表示范圍: -(2n-1-1) +(2n-1-1) 例如例如n=16:

17、-32767+32767補碼表示范圍:補碼表示范圍: -(2n-1) +(2n-1-1) 例如例如n=16: -32768+327672013-08186. 二進制數(shù)的擴展二進制數(shù)的擴展是指:數(shù)據(jù)從位數(shù)少擴展到位數(shù)較多是指:數(shù)據(jù)從位數(shù)少擴展到位數(shù)較多增加二進制位數(shù)。增加二進制位數(shù)。 例如從八位變?yōu)槭焕鐝陌宋蛔優(yōu)槭灰粋€二進制數(shù)擴展后,應(yīng)該保持這個數(shù)的大小和符號不變。一個二進制數(shù)擴展后,應(yīng)該保持這個數(shù)的大小和符號不變。(1)源碼表示的二進制數(shù):)源碼表示的二進制數(shù):將符號位左移到最高位,其他全部擴展為補將符號位左移到最高位,其他全部擴展為補0例如:例如: 1100 0110B 1000

18、0000 0100 0110B 0010 1101B 0000 0000 0010 1101B 2013-0819(2) 補碼擴展補碼擴展直接用符號位填充全部擴展位。直接用符號位填充全部擴展位。例如:例如:0011 1011B 0000 0000 0011 1011B1110 0110B 1111 1111 1110 0110B2013-0820 根據(jù)原碼定義,它的最高位為符號位,剩下的根據(jù)原碼定義,它的最高位為符號位,剩下的n-1位為數(shù)位為數(shù)值(絕對值),將符號位還原為用值(絕對值),將符號位還原為用+,-符號表示,數(shù)值部分不符號表示,數(shù)值部分不變,就是機器數(shù)的真值。變,就是機器數(shù)的真值。

19、如果要用十進制數(shù)真值表示,則再將原碼數(shù)值位各位按權(quán)如果要用十進制數(shù)真值表示,則再將原碼數(shù)值位各位按權(quán)展開求和。展開求和。7. 2013-0821例:已知已知x原原=00011111B,y原原=10011101B, 求求x和和y的真值。的真值。 X =+0011111B =+(0 26+0 25+1 24+1 23+1 22+1 21+1 20)=31Y = -0011101B = -(0 26+0 25+1 24+1 23+1 22+0 21+1 20)= -29 真值可以用二進制表示,也可以用十進制表示。我們習(xí)慣用真值可以用二進制表示,也可以用十進制表示。我們習(xí)慣用十進制表示。十進制表示。無

20、特別說明時,用十進制形式表示。無特別說明時,用十進制形式表示。2013-0822 要求反碼的真值,只要先求出反碼對應(yīng)的原碼,再按上述原要求反碼的真值,只要先求出反碼對應(yīng)的原碼,再按上述原碼轉(zhuǎn)換為真值的方法即可求出其真值。碼轉(zhuǎn)換為真值的方法即可求出其真值。l 正數(shù)的原碼是反碼本身。正數(shù)的原碼是反碼本身。l 負數(shù)的原碼可在反碼基礎(chǔ)上,符號位仍為負數(shù)的原碼可在反碼基礎(chǔ)上,符號位仍為1不變,數(shù)值位按不變,數(shù)值位按位取反位取反。例:例: 已知已知x反反=00001111B,y反反=11100101B,求,求x和和y。解解 x原原= x反反=00001111B, x=+0001111B=+(0 26+0

21、25+0 24+1 23+1 22+1 21+1 20)=15 y原原=10011010B, y=-0011010B=-(0 26+0 25+1 24+1 23+0 22+1 21+0 20)= -26 2013-0823同理,要求補碼的真值,也要先求出補碼對應(yīng)的原碼。同理,要求補碼的真值,也要先求出補碼對應(yīng)的原碼。正數(shù)的原碼與補碼相同。正數(shù)的原碼與補碼相同。負數(shù)的原碼可在補碼基礎(chǔ)上再次求補,即:負數(shù)的原碼可在補碼基礎(chǔ)上再次求補,即:補補原xx除符號位外,每位都取反,在最低位加除符號位外,每位都取反,在最低位加12013-0824例:例: 已知x補=00001111B,y補=11100101B

22、,求x和y解解 x原= x補=00001111B,(正數(shù)) x = +0001111B = +(026+025+024+123+122+121+120)=15 y原=y補補=10011011B,(負數(shù)) y = -0011011B = -(026+025+124+123+022+121+120)= -27 2013-08251.1.3 二進制數(shù)的加減運算二進制數(shù)的加減運算0. 一位二進制數(shù)的加減運算規(guī)則一位二進制數(shù)的加減運算規(guī)則 加加: 0+0=0 0+1=1 1+0=1 1+1=0(向高位向高位進進1) 減減: 0-0=0 1-1=0 1-0=1 0-1=1( 向高位向高位借借1)利用半加器

23、實現(xiàn)。利用半加器實現(xiàn)。考慮低位來的進位位,在數(shù)電中也學(xué)過,利用全家器實現(xiàn)考慮低位來的進位位,在數(shù)電中也學(xué)過,利用全家器實現(xiàn)1位二位二進制及加法運算。進制及加法運算。二進制數(shù)據(jù)的運算規(guī)則簡單,再加上容易存儲,因此計算機中二進制數(shù)據(jù)的運算規(guī)則簡單,再加上容易存儲,因此計算機中的數(shù)據(jù)都用二進制表示,非數(shù)值信息則用二進制編碼表示的數(shù)據(jù)都用二進制表示,非數(shù)值信息則用二進制編碼表示乘法運算可以通過加法運算實現(xiàn)乘法運算可以通過加法運算實現(xiàn)。2013-08261. 無符號數(shù)的運算無符號數(shù)的運算(1) 加法運算加法運算由于參與運算的兩個加數(shù)都是正數(shù),結(jié)果也是正數(shù)。當(dāng)超由于參與運算的兩個加數(shù)都是正數(shù),結(jié)果也是正數(shù)

24、。當(dāng)超過所允許的范圍時,產(chǎn)生向更高位的進位和溢出。過所允許的范圍時,產(chǎn)生向更高位的進位和溢出。例如:當(dāng)數(shù)據(jù)位為例如:當(dāng)數(shù)據(jù)位為8位二進制數(shù)時,位二進制數(shù)時, 127+160127=0111 1111160=1010 00000111 11111010 0000+1 0001 11112013-0827(2) 兩個無符號數(shù)的減法兩個無符號數(shù)的減法l被減數(shù)大于或等于減數(shù),結(jié)果為正,無借位被減數(shù)大于或等于減數(shù),結(jié)果為正,無借位CF=0192-101100 00000000 1010- 1011 011010-1920000 10101100 0000- 1 0100 1010l被減數(shù)小于減數(shù),結(jié)果為

25、負,有借位被減數(shù)小于減數(shù),結(jié)果為負,有借位CF=1由于是無符號數(shù)運算,實際上不能表示負數(shù)由于是無符號數(shù)運算,實際上不能表示負數(shù)l對于無符號數(shù)減法運算,結(jié)果的對于無符號數(shù)減法運算,結(jié)果的符號可以用進位位符號可以用進位位CF來判斷。來判斷。2013-08282. 補碼的運算補碼的運算在計算機中,帶符號數(shù)一般用補碼表示,運算結(jié)果自然也是補在計算機中,帶符號數(shù)一般用補碼表示,運算結(jié)果自然也是補碼。碼。 其運算特點是:符號位和數(shù)值位一起參加運算,并且自動其運算特點是:符號位和數(shù)值位一起參加運算,并且自動獲得結(jié)果(包括符號位與數(shù)值位)。獲得結(jié)果(包括符號位與數(shù)值位)。(1)補碼加法)補碼加法補碼加法運算的

26、運算公式為補碼加法運算的運算公式為補補補yxyx2013-0829 例例 已知 +51補=0011 0011B,+66補=0100 0010B, -51補=1100 1101B, -66補=1011 1110B 求求 +66補+51補=?+66補+-51補=?-66補+-51補=? 解: 二進制(補碼)加法 十進制加法 0100 0010 + 66補 + 66+) 0011 0011 + 51補 +) + 51 0111 0101 +117補 +117 2013-0830 二進制(補碼)加法 十進制加法 0100 0010 + 66補 +66+) 1100 1101 -51補 +) -51 0

27、000 1111 +15補 +151自動丟失由于+66補+51補=(+66)+(+55)補=01110101B結(jié)果為正,因此(+66)+(+55)原=(+66)+(+55)補=01110101B其真值為+117,計算結(jié)果正確。 2013-0831 二進制(補碼)加法 十進制加法 1011 1110 - 66補 -66+) 1100 1101 -51補 +) -51 1000 1011 -117補 -1171自動丟失由于+66補+51補=(+66)+(55)補=0000111B結(jié)果為正,因此(+66)+(55)原=(+66)+(55)補=00001111其真值為+15,計算結(jié)果正確。 2013-

28、0832由于由于-66補補+-51補補=10001011B=(-66)+(-55)補補 結(jié)果為負,因此結(jié)果為負,因此 (-66)+(-55)原原=(-66)+(-55)補補補補=11110101B其真值為其真值為-117,計算結(jié)果正確。,計算結(jié)果正確。 可以看出,不論被加數(shù)、加數(shù)是正數(shù)還是負數(shù),只要直接用可以看出,不論被加數(shù)、加數(shù)是正數(shù)還是負數(shù),只要直接用它們的補碼直接相加,當(dāng)結(jié)果不超出補碼所表示的范圍時,計算它們的補碼直接相加,當(dāng)結(jié)果不超出補碼所表示的范圍時,計算結(jié)果便是正確的補碼形式。但當(dāng)計算結(jié)果超出補碼表示范圍時,結(jié)果便是正確的補碼形式。但當(dāng)計算結(jié)果超出補碼表示范圍時,結(jié)果就不正確了,這

29、種情況稱為結(jié)果就不正確了,這種情況稱為。 2013-0833(2) 補碼減法運算補碼減法運算補碼減法的運算公式為:補碼減法的運算公式為:補補補補補yxyxyx 這個公式可以用補碼的定義來證明,在這個公式可以用補碼的定義來證明,在這里我們這里我們不做證不做證明,只是直接應(yīng)用。明,只是直接應(yīng)用。l -y補補的求法:將的求法:將y補補連同符號位一起各位取反連同符號位一起各位取反+1 -y補補又是叫做又是叫做機器負數(shù)。機器負數(shù)。例如:例如: y補補=0001000 (8), -y補補= 00001000+1= 1110111 +1=1111000 (-8)2013-0834 例例 已知+51補=001

30、1 0011B,+66補=0100 0010B51補=1100 1101B,66補=1011 1110B求 +66補+51補=? -66補- -51補=? 解 +66補- +51補=+66補+-51補 二進制(補碼)加法 十進制加法 0100 0010 + 66補 +66+) 1100 1101 -51補 -) +51 0000 1111 +15補 +151自動丟失2013-0835 二進制(補碼)加法 十進制加法 1011 1110 - 66補 -66+) 0011 0011 +51補 -) -51 1111 0001 -15補 -15-66補- -51補=-66補+51補 2013-083

31、6 無論無論被減數(shù)、減數(shù)是正數(shù)還是負數(shù),上述補碼被減數(shù)、減數(shù)是正數(shù)還是負數(shù),上述補碼減法都是減法都是正確的。正確的。同樣,由最高位向更高位的進位會自動丟失而不影響運算結(jié)果的同樣,由最高位向更高位的進位會自動丟失而不影響運算結(jié)果的正確性。正確性。(3) 計算機中帶符號數(shù)用補碼表示時有如下優(yōu)點:計算機中帶符號數(shù)用補碼表示時有如下優(yōu)點: 2013-0837 無符號數(shù) 帶符號數(shù) 11100001 225 -31補+) 00001101 +) 13 +) +13補 11101110 238 -18補 若兩操作數(shù)為無符號數(shù)時,計算結(jié)果為無符號數(shù)若兩操作數(shù)為無符號數(shù)時,計算結(jié)果為無符號數(shù)11101110B,

32、其真值為其真值為238,結(jié)果正確;若兩操作數(shù)為補碼形式,計算結(jié)果也,結(jié)果正確;若兩操作數(shù)為補碼形式,計算結(jié)果也為補碼形式,為補碼形式,11101110B為為18的補碼,結(jié)果也是正確的。的補碼,結(jié)果也是正確的。 2013-08382. 溢出與補碼運算的進位丟失溢出與補碼運算的進位丟失(1) 進位與進位丟失進位與進位丟失 1100 1110 -50+ 1111 1011 - 5 1 1100 1001 = -00110111B=-55進位丟失進位丟失l在不產(chǎn)生溢出時,丟去進位位在不產(chǎn)生溢出時,丟去進位位CF結(jié)果是正確的。結(jié)果是正確的。l對于多字節(jié)運算,進位位對于多字節(jié)運算,進位位CF送到高字節(jié)運算

33、送到高字節(jié)運算2013-0839(2) 如何判斷溢出?如何判斷溢出?例如,字長為例如,字長為n位的帶符號數(shù),它能表示的補碼范圍為位的帶符號數(shù),它能表示的補碼范圍為 -2n-1 +2n-1-1,如果運算結(jié)果超出此范圍,就叫補碼溢出,簡稱溢出。如果運算結(jié)果超出此范圍,就叫補碼溢出,簡稱溢出。2013-0840l溢出的判斷方法溢出的判斷方法對于對于n位字長補碼運算,最高位產(chǎn)生的進位信號為位字長補碼運算,最高位產(chǎn)生的進位信號為CY=Cn-1次高位產(chǎn)生的進位信號為次高位產(chǎn)生的進位信號為CS=Cn-2溢出信號為:溢出信號為:SYCCOF對于對于16位機器,位機器,則用則用C15,C14來判斷來判斷例如例如

34、8位機器,用位機器,用C7,C6來來判斷判斷67CCCCOFSY1415CCCCOFSYOF=1溢出溢出OF=0未溢出未溢出2013-0841通過通過硬件檢測是否產(chǎn)生溢出,并將硬件檢測是否產(chǎn)生溢出,并將CPU內(nèi)的標(biāo)志寄存器的溢內(nèi)的標(biāo)志寄存器的溢出標(biāo)志位出標(biāo)志位OF置位。置位。在在程序設(shè)計時,如果需要,通過測試該位的狀態(tài),就可以識程序設(shè)計時,如果需要,通過測試該位的狀態(tài),就可以識別是否出現(xiàn)溢出錯誤。別是否出現(xiàn)溢出錯誤。 當(dāng)然,對于多字節(jié)的運算,會產(chǎn)生從低字節(jié)向高字節(jié)的當(dāng)然,對于多字節(jié)的運算,會產(chǎn)生從低字節(jié)向高字節(jié)的進位信號。這種情況就不是溢出進位信號。這種情況就不是溢出錯誤。錯誤。對于對于進位信

35、號,在標(biāo)志寄存器中有一個特殊位進位信號,在標(biāo)志寄存器中有一個特殊位進位標(biāo)志進位標(biāo)志CF保存。它是最高二進制位運算時產(chǎn)生的進位保存。它是最高二進制位運算時產(chǎn)生的進位信號。信號。 2013-08421.1.4 二進制數(shù)的邏輯運算二進制數(shù)的邏輯運算邏輯運算按位進行。邏輯運算按位進行。1. 邏輯與邏輯與“與與”運算又稱邏輯乘,可用符號運算又稱邏輯乘,可用符號“ ”或或“ ”表示。規(guī)則為:表示。規(guī)則為:0 0=0 0 1=0 1 0=0 1 1=1 可以看出,只有當(dāng)兩個變量均為可以看出,只有當(dāng)兩個變量均為“1”時,時,“與與”的結(jié)果才為的結(jié)果才為“1”。利用與邏輯門電路實現(xiàn)邏輯與運算。利用與邏輯門電路實

36、現(xiàn)邏輯與運算。2. 邏輯或邏輯或“或或”運算又稱邏輯加,可用符號運算又稱邏輯加,可用符號“ ”或或“+”表示。規(guī)則為表示。規(guī)則為: 0 0=0 0 1=1 1 0=1 1 1=1 可以看出,兩個變量只要有一個為可以看出,兩個變量只要有一個為“1”,“或或”的結(jié)果就為的結(jié)果就為“1”。利用或邏輯門電路實現(xiàn)邏輯或運算。利用或邏輯門電路實現(xiàn)邏輯或運算。&ABYBAYBAY1ABY2013-08433. 邏輯非邏輯非邏輯邏輯“非非”運算規(guī)則如下:運算規(guī)則如下:10,010111011100004. 邏輯異或邏輯異或(XOR) “異或異或”運算可用符號運算可用符號“”“”表示。運算規(guī)則如下:表示

37、。運算規(guī)則如下:2013-08445. 正邏輯與負邏輯正邏輯與負邏輯(1)正邏輯)正邏輯用高電平表示邏輯用高電平表示邏輯1,低電平表示邏輯,低電平表示邏輯0,在這種規(guī)定下的邏輯關(guān)系叫做正,在這種規(guī)定下的邏輯關(guān)系叫做正邏輯。邏輯。(2) 負邏輯負邏輯用低電平表示邏輯用低電平表示邏輯1,高電平表示邏輯,高電平表示邏輯0,在這種規(guī)定下的邏輯關(guān)系叫做正,在這種規(guī)定下的邏輯關(guān)系叫做正邏輯。邏輯。教材上圖教材上圖1-5說的輸入輸出端帶圓圈表示信號取邏輯非。說的輸入輸出端帶圓圈表示信號取邏輯非。并不是表示使用負邏輯。并不是表示使用負邏輯。&ABY1ABYBABAYBAY在沒有特別說明時,后面都使用正

38、邏輯在沒有特別說明時,后面都使用正邏輯.2013-08451.1.5 二進制編碼二進制編碼 計算機中直能存儲、處理二進制信息,數(shù)據(jù)信息用二進制方式表示,那計算機中直能存儲、處理二進制信息,數(shù)據(jù)信息用二進制方式表示,那么非數(shù)值信息如何表示?么非數(shù)值信息如何表示? 使用二進制編碼表示。使用二進制編碼表示。1.ASCII編碼編碼2.美國標(biāo)準(zhǔn)信息交換碼美國標(biāo)準(zhǔn)信息交換碼,用用8位二進制編碼來表示一個字符位二進制編碼來表示一個字符,且規(guī)定最高二進制且規(guī)定最高二進制位位=0。3.實際上是用實際上是用7位二進制編碼。位二進制編碼。字符字符ASCII編碼(編碼(H)字符字符ASCII編碼編碼(H)093039

39、回車回車LF0AAZ415A換行換行CR0Daz617A常用的常用的ASCII編碼編碼2013-0846ASCII(7位代碼位代碼) 2013-08472. 十進制數(shù)的二進制表示十進制數(shù)的二進制表示BCD碼碼十進制數(shù)十進制數(shù)09有九個數(shù)碼,最少需要用用四位二進制來編碼表有九個數(shù)碼,最少需要用用四位二進制來編碼表示。示。四位二進制具有十六種編碼組合,只選用其中的十種來表示一四位二進制具有十六種編碼組合,只選用其中的十種來表示一位十進制數(shù),這樣就可以有不同的表示方法。位十進制數(shù),這樣就可以有不同的表示方法。我們最常用的是我們最常用的是8421編碼。編碼。8421編碼編碼b3b2b1b0 = 23

40、b3+22b2+21b1+20b0 它們各位它們各位=1代表的數(shù)分別為代表的數(shù)分別為8,4,2,1,因此叫做,因此叫做8421碼。碼。2013-084800000100012001030011401005010160110701118100091001不不使使用用1010101111001101111011118421碼與二進制數(shù)的對應(yīng)關(guān)系:2013-0849(1)壓縮)壓縮BCD碼碼 計算機中的最小單位為字節(jié),一個字節(jié)為計算機中的最小單位為字節(jié),一個字節(jié)為8位,一位位,一位BCD碼碼為為4位,這樣,一個字節(jié)可以表示位,這樣,一個字節(jié)可以表示2位位BCD碼。碼。例如一個數(shù)據(jù)例如一個數(shù)據(jù) 34,用壓縮的,用壓縮的BCD碼表示為:碼表示為: 0011 0100 B 它表示十進制數(shù)它表示十進制數(shù) 34。當(dāng)只有一位時,高位可以認為是當(dāng)只有一位時,高位可以認為是0。2013-0850(2)非

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論