版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、原碼、反碼和補碼的概念本節(jié)要求掌握原碼、反碼、補碼的概念知識精講數(shù)值型數(shù)據(jù)的表示按小數(shù)點的處理可分為定點數(shù)和浮點數(shù);按符號位有原碼、反碼和補碼三種形式的機器數(shù)。一計算機中數(shù)據(jù)的表示方法1、數(shù)的定點與浮點表示在計算機內(nèi)部,通常用兩種方法來表示帶小數(shù)點的數(shù),即所謂的定點數(shù)和浮點數(shù)。 定點數(shù):是小數(shù)點在數(shù)中的位置是固定不變的數(shù),數(shù)的最高位為符號位,小數(shù)點可在符號位之后,也可在數(shù)的末尾,小數(shù)點本身不需要表示出來,它是隱含的。 缺點:只有純小數(shù)或整數(shù)才能用定點數(shù)表示; 浮點數(shù):小數(shù)點在數(shù)中的位置是浮動的、不固定的數(shù)。一般浮點數(shù)既有整數(shù)部分又有小數(shù)部分,通常對于任何一個二進行制數(shù),總可以表示成:
2、7;P×S 、均為二進制數(shù),為的階碼,一般為定點整數(shù),常用補碼表示,階碼指明小數(shù)點在數(shù)據(jù)中的位置,它決定浮點的表示范圍為N的尾數(shù),一般為定點小數(shù),常用補碼或原碼表示,尾數(shù)部分給出了浮點數(shù)的有效數(shù)字位數(shù),它決定了浮點數(shù)的精度,且規(guī)格化浮點數(shù)0.5|S|<;0.1B=( 1/2 )D =( 2-1 )D0.11B=(1/2 + 1/4 )D =( 2-1 + 2-2 )D0.111B=(1/2 + 1/4 + 1/8 )D =( 2-1 + 2-2 + 2-3)D -在計算機中表示一個浮點數(shù)其結(jié)構(gòu)為: 階碼部分 尾數(shù)部分階符階數(shù)尾符尾數(shù)EfE1E2EmSfS1S2Sn假設用八個二進
3、制位來表示一個浮點數(shù),且階碼部分占4位,其中階符占一位;尾數(shù)部分占4位,尾符也占一位。若現(xiàn)有一個二進制數(shù)N(101100)2可表示為:110×0.1011,則該數(shù)在機器內(nèi)的表示形式為:101100B= 10110B * (21)D101100B= 1011B * (22)D101100B= 101.1B * (23)D101100B= 10.11B * (24)D101100B= 1.011B * (25)D101100B= 0.1011B * (26)D=0.1011B * (2110)B011001101一個浮點形式的尾數(shù)S若滿足0.5|S|1,且尾數(shù)的最高位數(shù)為1,無無效的0,
4、則該浮點數(shù)稱為規(guī)格化數(shù);規(guī)格化數(shù)可以提高運算的精度。 S為原碼表示,則 S=1規(guī)格化數(shù) S為補碼表示 N為正數(shù),則S1 N為負數(shù),則S1 二、原碼、反碼和補碼1、機器數(shù)與真值機器數(shù):在計算機中數(shù)據(jù)和符號全部數(shù)字化,最高位為符號位,且用0表示正、1表示負,那么把包括符號在內(nèi)的一個二進制數(shù)我們稱為機器數(shù),機器數(shù): 有原碼、反碼和補碼三種表示方法。比如,十進制中的數(shù) +3 ,計算機字長為8位,轉(zhuǎn)換成二進制就是00000011。如果是 -3 ,就是 10000011 。 那么,這里的 00000011 和
5、0;10000011 就是機器數(shù)。真值:用“+”、“”號表示的二進制數(shù)。機器數(shù)因為第一位是符號位,所以機器數(shù)的形式值就不等于真正的數(shù)值。例如上面的有符號數(shù) 10000011,其最高位1代表負,其真正數(shù)值是 -3 而不是形式值131(10000011轉(zhuǎn)換成十進制等于131)。所以,為區(qū)別起見,將帶符號位的機器數(shù)對應的真正數(shù)值稱為機器數(shù)的真值。 例:0000 0001的真值 = +000 0001 = +1, 1000 0001的真值 = -000
6、0;0001 = -1 2、原碼、反碼和補碼的概念1)概念機器數(shù): 有原碼、反碼和補碼三種表示方法。原碼:是最簡單的機器數(shù)表示法。其數(shù)符位用0表示正,1表示負,其余各位表示真值本身。 即用第一位表示符號, 其余位表示值,比如如果是8位二進制: 1的原碼是00000001, 1的原碼是10000001。反碼:正數(shù)的反碼同原碼, 負數(shù)的反碼為除符號位外,其它各位按位取反。 正數(shù)的反碼是其本身, 負數(shù)的反碼是在其原碼的基礎上,符號位不變,其余各個位取反 1的反碼是00000001, 1的反碼是11111110。補碼:正數(shù)的補碼同原碼,負數(shù)的補碼為反碼加1。 負數(shù)的補碼是
7、在其原碼的基礎上, 符號位不變, 其余各位取反, 最后+1 1的補碼是00000001, 1的補碼是11111110。2)轉(zhuǎn)換方法當真值為正數(shù)時,原碼、反碼、補碼 3種機器數(shù)的最高位均為0當真值為負數(shù)時,原碼、反碼、補碼 3種機器數(shù)的最高位均為1機器數(shù)的最高位為符號位,其它位稱為數(shù)值位。當真值為正數(shù)時,原碼=反碼=補碼;當真值為負數(shù)時,三種機器數(shù)的符號位相同,均為1,原碼的數(shù)值位保持“原”樣,反碼的數(shù)值位是原碼數(shù)值位的“按位取反”,補碼的數(shù)值位是原碼的數(shù)值位的“按位取反”后再加1,簡稱“取反加1”。當真值為負數(shù)時:補碼 = 反碼+1當真值為負數(shù)時:原碼 = 補碼取
8、補 補碼 = 原碼取補 -x補=模 - x補 x補=模 - -x補 比如8bit,模= 28=1_0000_0000 例如:(1)假設碼長為8位,寫出下列數(shù)的原碼、反碼和補碼。根據(jù)本題可得到結(jié)論:0的原碼、反碼各有兩種表示方法,而補碼是唯一的全0表示。真值+0-0+1-1+127-127-128原碼000000001000000000000001100000010111111111111111溢出反碼000000001111111100000001111111100111111110000000溢出補碼0000000000000000000000011111111101111111100000
9、0110000000 (2)假設碼長為8位,寫出原碼、反碼和補碼所能表示定點整數(shù)和定點小數(shù)的范圍。二進制定點整數(shù)十進制定點整數(shù)n位可表示的個數(shù)二進制定點小數(shù)十進制定點小數(shù)原碼1111111101111111-127+1272n-1個1.11111110.1111111-127/128+127/128反碼1000000001111111-127+1272n-1個1.11111110.1111111-127/128+127/128補碼1000000001111111-128+127(-128)代替了(-0)2n個1.11111110.1111111-1-127/128由此可見:n位的二進制數(shù)用原碼
10、表示,則可表示的數(shù)的個數(shù)為2n-1個;n位的二進制數(shù)用反碼表示,則可表示的數(shù)的個數(shù)為2n1個;n位的二進制數(shù)用補碼表示,則可表示的數(shù)的個數(shù)為n個。比如:補碼中用(-128)代替了(-0)編程中常用到的32位int類型,可以表示范圍是: -231 231 -1 因為第一位表示的是符號位.而使用補碼表示時又可以多保存一個最小值 -2G 2G -13、算術(shù)運算計算機中的算術(shù)運算一般可采用補碼進行,用補碼表示的兩個操作數(shù)進行算術(shù)運算,符號位可直接參加運算,結(jié)果仍為補碼。定點補碼加法運算運算規(guī)則:x+y補x取補y補定點補碼減法運算運算規(guī)則:xy補x+(-y)補x補y補y補的求法是將y
11、補的各位(包括符號位)全取反,最末位加。即將y補連同符號位一起取反加1便可得到y(tǒng)補。 -x補=模 - x補 x補=模 - -x補 比如8bit,模= 28如:y補=10001010,則y補=01110110; -1補=28 - 1補=1_0000_0000 - 0000_0001 = 1111_1111y補=0100,則y補=1100; -(-1)補=28 - -1補=1_0000_0000 - 1111_1111 = 0000_0001 注意:在進行運算時有時會發(fā)生溢出。 定點補碼運算的溢出處理采用補碼運算時若結(jié)果的數(shù)值超出了補碼所能表示的范圍,則此種情況稱為溢出。若計算結(jié)果比能表示的最大數(shù)
12、還大則稱為上溢,上溢時一般作溢出中斷處理;若計算結(jié)果比能表示的最小數(shù)還小則稱為下溢,下溢時一般作機器零處理。下面介紹用雙符號判斷溢出方法:引入兩個符號位Cs+1、CsCs+1用來表示兩個符號位向更高位進位時的狀態(tài),有進位時Cs+1=1,無進位時Cs+1=0;Cs用來表示兩數(shù)值的最高位向符號位進位時的狀態(tài),有進位時Cs=1,無進位時Cs=0;當Cs+1Cs=00或11時,無溢出;當Cs+1Cs=01或10時,有溢出,當雙符號位為01時正溢出,當雙符號位為10時負溢出;例如:x補=10011100,y 補=10011000,則x+y補= 。溢出,因為Cs+1Cs=10。故溢出邏輯表達式為VCs+1
13、Cs無符號數(shù)的運算無符號數(shù)的運算實際上是指參加運算的操作數(shù)X、Y均為正數(shù),且整個字長全部用于表示數(shù)值部分。當兩個無符號數(shù)相加時,其值在字長表示的范圍內(nèi),其結(jié)果為正數(shù)。當兩個無符號數(shù)相減時,其值的符號位取決于兩數(shù)絕對值的大小。另外,地址在計算機中用無符號數(shù)表示。四原碼, 反碼, 補碼再深入 計算機巧妙地把符號位參與運算, 并且將減法變成了加法, 背后蘊含了怎樣的數(shù)學原理呢?將鐘表想象成是一個1位的12進制數(shù). 如果當前時間是6點, 我希望將時間設置成4點, 我們可以: 1. 往回撥2個小時:
14、60;6 - 2 = 4 2. 往前撥10個小時: (6 + 10) mod 12 = 4 3. 往前撥10+12=22個小時: (6+22) mod 12 =4 2,3方法中的mod是指取模操作, 16 mod 12 =4 即用16除以12后的余數(shù)是4. 所以鐘表往回撥(減法)的結(jié)果可以用往前撥(加法)替代! 現(xiàn)在的焦點就落在
15、了如何用一個正數(shù), 來替代一個負數(shù). 上面的例子我們能感覺出來一些端倪, 發(fā)現(xiàn)一些規(guī)律. 但是數(shù)學是嚴謹?shù)? 不能靠感覺. 首先介紹一個數(shù)學中相關(guān)的概念: 同余“?!笔侵敢粋€計量系統(tǒng)的計數(shù)范圍例如:時鐘的計量范圍是011,模=12。表示n位的計算機計量范圍是02n -1,模=2n“?!睂嵸|(zhì)上是計量器產(chǎn)生“溢出”的量,它的值在計量器上表示不出來,計量器上只能表示出模的余數(shù)。任何有模的計量器,均可化減法為加法運算。比如:時鐘(模=12)中,加8和減4效果是一樣的,因此凡是減4運算,都可以用加8來代替對時鐘(模=12)而言,8和4
16、互為補數(shù)。以12模的系統(tǒng)中,11和1;10和2;9和3;7和5;6和6都互為補數(shù)。共同的特點是兩者相加等于模對于計算機,其概念和方法完全一樣。n位計算機,設n=8, 所能表示的最大數(shù)是11111111,若再加1稱為100000000(9位)但因只有8位,最高位1自然丟失。又回了00000000,所以8位二進制系統(tǒng)的模為28。在這樣的系統(tǒng)中減法問題也可以化成加法問題,只需把減數(shù)用相應的補數(shù)表示就可以了。-x補=模 - x補 x補=模 - -x補 比如8bit,模= 28 -1補=28 - 1補=1_0000_0000 - 0000_0001 = 1111_1111 -(-1)補=28 - -1補
17、=1_0000_0000 - 1111_1111 = 0000_0001 把補數(shù)用到計算機對數(shù)的處理上,就是補碼。負數(shù)取模x mod y = x - y*int( x / y ) int( x / y ) VB語法表示:不大于(x/y)的最大整數(shù),即向下取整 int(-1.5)=-2 Fix(-1.5)=-1舉例: -3 mod 2 = -3 - 2*int(-3/2) =
18、160;-3 - 2*(-2) = -3 - 2x(-2)=1同余的概念兩個整數(shù)a,b,若它們除以整數(shù)m所得的余數(shù)相等,則稱a,b對于模m同余記作 a b (mod m) 讀作 a 與 b 對于模 m 同余舉例說明: 4 mod 12 = 4 ; 16 mod 12 = 4 ; 28 mod
19、60;12 = 4 所以4, 16, 28對于模 12 同余.兩個定理: 1、反身性: a a (mod m) 自己和自己 對于模m同余2、 線性運算定理:如果a b (mod m),c d (mod m) 那么: (1) a ± c b ± d (mod m)(2) a * c b * d (mod&
20、#160;m) 3、 傳遞性:若ab (mod m),bc (mod m),則ac (mod m)典型例題一、 選擇題1、一個四位二進制補碼的表示范圍是( )A、015 B、-87 C、-77 D、-782、(10題)十進制數(shù)-48用補碼表示為( ) A、10110000 B、11010000 C、11110000 D、11001111分析:求某個負數(shù)的補碼,可利用模的定義,所以求-48的補碼,只需求-80的原碼即可,因為-48+(-80)=-128,而-80原=11010000,故選B,注,傳統(tǒng)做法是在原碼的基礎上“取反加1”。答案:B3、(09年鎮(zhèn)江三模)如果X為負數(shù),由x補求-
21、x補是將( )A、x補各值保持不變 B、x補符號位變反,其他各位不變C、x補除符號位外,各位變反,末位加1 D、x補連同符號位一起各位變反,末位加1分析:不論X是正數(shù)還是負數(shù),由X補求-X補的方法是對X補求補,即連同符號位一起按位取反,末位加。答案:D二、 判斷題1計算機中一個浮點數(shù)N可用±P×S表示,那么用規(guī)格化數(shù)表示,則尾數(shù)S必須滿足0.5|S|1。【答案】對【解題指導】一個浮點形式的尾數(shù)S若滿足0.5|S|1,且尾數(shù)的最高位數(shù)為1,無無效的0,則該浮點數(shù)稱為規(guī)格化數(shù);規(guī)格化數(shù)可以提高運算的精度。三、 填空題1二進制數(shù).011011的規(guī)格化數(shù)為,二進制數(shù)11011的規(guī)格
22、化數(shù)為。(尾數(shù)、階碼均用8位二進制補碼表示)分析:.011011可表示為.11011×2-1,即規(guī)格化數(shù)為.11011×2-1 11011可表示為.11011×25,即規(guī)格化數(shù)為.11011×21012、已知X、Y為兩個有符號數(shù)的定點整數(shù),它們的補碼為:x補=00010011B,y補=11111001B,則X+Y補 B。分析:X+Y補X補Y補,X為正數(shù),Y為負數(shù),故列式結(jié)果不溢出為00001100。答案:00001100原碼、反碼和補碼的概念當堂練習一、選擇題( )1、機器數(shù)80H所表示的真值是-128,則該機器數(shù)為 形式的表示。A、原碼 B、反碼 C、
23、補碼 D、移碼( )2、在浮點數(shù)中,階碼、尾數(shù)的表示格式是 。 A、階碼定點整數(shù),尾數(shù)定點小數(shù) B、階碼定點整數(shù),尾數(shù)定點整數(shù)C、階碼定點小數(shù),尾數(shù)定點整數(shù) D、階碼定點小數(shù),尾數(shù)定點小數(shù)( )3、已知x補=10110111,y補=01001010,則xy補的結(jié)果是 。 A、溢出 B、01101010 C、01001010 D、11001010( )4、某機字長8位,含一位數(shù)符,采用原碼表示,則定點小數(shù)所能表示的非零最小正數(shù)為 。 A、2-9 B、2-8 C、-1 D、2-7( )5、(08年)下列數(shù)中最小的數(shù)是_C_。A10010101原B10010101反C10010101補D100101
24、012( )6、(12年)8位補碼表示的定點整數(shù)的范圍是 B 。 A、-128+128 B、-128+127 C、-127+128 D、-127+127( )7、(11年鹽城二模)已知X的補碼為10110100,Y的補碼為01101010,則X-Y的補碼為 。A) 01101010 B) 01001010 C) 11001010 D) 溢出( )8、將-33以單符號位補碼形式存入8位寄存器中,寄存器中的內(nèi)容為( )。ADFH BA1H C5FH DDEH( )9、在機器數(shù)的三種表示形式中,符號位可以和數(shù)值位一起參加運算的是( )A)原碼 B)補碼 C)反碼 D)反碼、補碼二、判斷題( )1、1
25、6位的補碼表示的定點整數(shù)的最小值是-32768。( )2、(10年南京二模)一個數(shù)在計算機中分別用原碼、反碼、補碼表示時一定各不相同。( )3、(10年常州三模)字長相同,定點法表示數(shù)的范圍比浮點法小。( )4若用八位二進制數(shù)來表示一個有符號數(shù),則原碼、反碼和補碼表示的數(shù)的個數(shù)與范圍均相同。三、填空題1、十進制數(shù)-27對應的8位二進制補碼為 。2、(11年)已知X、Y為兩個帶符號的定點整數(shù),它們的補碼為:X補=00010011B,Y補=11111001B,則X+Y補 = 00001100 B。3、數(shù)x的真值為-0.1011B,其原碼表示為 ,補碼表示為 。4、八位定點整數(shù),采用二進制補碼表示時
26、,所能表示真值的十進制數(shù)的范圍是 。 5、(09年)已知X補=01110111B,Y補=01100010B,則X-Y 補=_00010101_。6、(11年)一個含有6個“1”、2個“0”的八位二進制整數(shù)原碼,可表示的最大數(shù)為 7EH 。(用十六進制表示)7、(12年)已知X補=10000000B,則X= -10000000 B。8、(10年鹽城二模)二進制數(shù)10110000,若看成純小數(shù),且為補碼,則其對應真值的十進制數(shù)是_。原碼、反碼和補碼的概念課后練習一、選擇題( )1、(10年鹽城二模)“溢出”一般是指計算機在運算過程是產(chǎn)生的 _ 。A、數(shù)據(jù)量超過內(nèi)存容量 B、文件個數(shù)超過磁盤目錄區(qū)規(guī)定的范圍C、數(shù)據(jù)超過了機器的位所能表示的范圍 D、數(shù)據(jù)超過了變量的表示范圍( )2、設有二進制數(shù)X=-1101110,若采用8位二進制數(shù)表示,則X補的結(jié)果是 。 A、11101101 B、10010011 C、00010011 D、10010010 。 A、-55510 B、-23368 C、-18762 D、5
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年人教版PEP八年級地理上冊階段測試試卷含答案
- 2025年粵教版必修1歷史上冊月考試卷含答案
- 二零二五版臨時租車合同保險條款4篇
- 承建企業(yè)建筑施工合同(2篇)
- 2025年跨境貨運車隊承包經(jīng)營合同范本4篇
- 二零二五年度模具采購合同與模具新材料應用研究合同4篇
- ktv公關(guān)聘用合同
- 二零二五年度裝配式建筑木工勞務分包合同協(xié)議4篇
- 2025年度牧業(yè)人才培養(yǎng)與承包服務合同3篇
- 二零二五年度商場柜臺租賃及品牌形象維護合同3篇
- 乳腺癌的綜合治療及進展
- 【大學課件】基于BGP協(xié)議的IP黑名單分發(fā)系統(tǒng)
- 2025年八省聯(lián)考高考語文試題真題解讀及答案詳解課件
- 信息安全意識培訓課件
- 2024年山東省泰安市初中學業(yè)水平生物試題含答案
- 美的MBS精益管理體系
- 2024安全員知識考試題(全優(yōu))
- 中國大百科全書(第二版全32冊)08
- 法律訴訟及咨詢服務 投標方案(技術(shù)標)
- 格式塔心理咨詢理論與實踐
- 英語六級詞匯(全)
評論
0/150
提交評論