




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第2章 計算機中信息的表示與運算 2. 1 數據的表示數據的表示 2. 2 定點數的運算定點數的運算 2. 3 浮點數的運算浮點數的運算 2. 4 面向錯誤檢測與糾錯的數據編碼面向錯誤檢測與糾錯的數據編碼2. 5 字符的表示字符的表示 2. 6 面向存儲與傳輸的數據編碼面向存儲與傳輸的數據編碼 2022-5-181第2章 計算機中信息的表示與運算 2. 1 數據的表示數據的表示 問題問題 1 如何表示如何表示“正正/負負”? 問題問題 2 如何表示如何表示“小數點小數點”? 用“0”表示“+”用“1”表示“” 符號數字化的數叫符號數字化的數叫機器數機器數,原先的數叫,原先的數叫真值真值。 默認
2、小數點在數值的最前方或者最后方。默認小數點在數值的最前方或者最后方。 這樣得到的數叫這樣得到的數叫定點數定點數, 小數點被默認位于數值前部的叫小數點被默認位于數值前部的叫定點小數定點小數, 被默認位于數值后部的叫被默認位于數值后部的叫定點整數定點整數。2022-5-182帶符號的數 符號數字化的數+ 0.10110 1011小數點的位置+ 11000 1100小數點的位置 11001 1100小數點的位置 0.10111 1011小數點的位置真值 機器數 機器數與真值約定:最高位MSB為符號位2022-5-183第2章 計算機中信息的表示與運算 2. 1. 1 定點數的表示定點數的表示定點小數
3、與定點整數定點小數與定點整數 若默認小數點在符號位與數值最高位之間,則計若默認小數點在符號位與數值最高位之間,則計算機實現的是定點小數;若默認小數點在數值最低算機實現的是定點小數;若默認小數點在數值最低位之后,則計算機實現的是定點整數。位之后,則計算機實現的是定點整數。1. 原碼(符號原碼(符號-絕對值)表示法絕對值)表示法X = + 1011010B,X原原 = 0, 1011010B;Y = 1011010B,Y原原 = 1, 1011010B;Z = + 0.1101010B,Z原原 = 0. 1101010B;K = 0.1101010B,K原原 = 1. 1101010B。 書寫時,
4、在符號書寫時,在符號位與數值最高位位與數值最高位之間加之間加“,”表示數表示數據是定點整數據是定點整數 書寫時,在符號位書寫時,在符號位與數值最高位之間與數值最高位之間加加“.”表示數據是表示數據是定點小數定點小數 計算機并不存計算機并不存儲儲“,”/ “.” 2022-5-184第2章 計算機中信息的表示與運算 2. 1. 1 定點數的表示定點數的表示【例【例2-1】 設機器字長為設機器字長為8位,位,X = 0101010B, Y = + 1010101B,求,求X原原 和和Y原原=?解:解:X原原 = 10101010B,Y原原 = 01010101B【例例2-2】 設機器字長為設機器字
5、長為8位,位,X = 0,求,求X原原=?解:對于零(解:對于零(0)而言,其原碼中的符號位取)而言,其原碼中的符號位取0、取、取1都可以,所以都可以,所以 X原原 = 10000000B 或或 X原原 = 00000000B零零(0)的原碼表示有兩個:正零和負零的原碼表示有兩個:正零和負零 2022-5-185第2章 計算機中信息的表示與運算 2. 1. 1 定點數的表示定點數的表示 原碼形式的原碼形式的n位定點整數的表示范圍是:位定點整數的表示范圍是: (2n11) +(2n11)例如,例如,8位定點整數的表示范圍是位定點整數的表示范圍是: (271) +(271),即,即:127+127
6、;16位定點整數的表示范圍是位定點整數的表示范圍是: (2151) +(2151),即,即:32767+32767原碼表示的原碼表示的n位定點小數的表示范圍是位定點小數的表示范圍是: (12(n1) ) + (12(n1) ) 。 2022-5-186第2章 計算機中信息的表示與運算 2. 1. 1 定點數的表示定點數的表示 為了擴大表數范圍,在數據都是正數的情為了擴大表數范圍,在數據都是正數的情況下,可以把符號位省掉。況下,可以把符號位省掉。這樣這樣n位定點整數的表示范圍是:位定點整數的表示范圍是:0 +(2n 1)例如,例如,8位定點整數的表示范圍是位定點整數的表示范圍是: 0 +(281
7、),即,即: 0+255; 16位定點整數的表示范圍是位定點整數的表示范圍是: 0 +(2161),即,即: 0+65535 可見,定點數又分為帶符號數和無符號數。原可見,定點數又分為帶符號數和無符號數。原碼和后面介紹的補碼、反碼都是針對帶符號數的。碼和后面介紹的補碼、反碼都是針對帶符號數的。2022-5-187第2章 計算機中信息的表示與運算 原碼簡單明了,易于和真值轉換,但是基于原碼簡單明了,易于和真值轉換,但是基于原碼實現的加、減運算比較復雜,即在執行的原碼實現的加、減運算比較復雜,即在執行的加、減運算時,不能直接運算。需要先判斷兩加、減運算時,不能直接運算。需要先判斷兩個操作數的符號以
8、及兩個操作數絕對值的相對個操作數的符號以及兩個操作數絕對值的相對大小,然后再執行所需要的運算。大小,然后再執行所需要的運算。2022-5-188第2章 計算機中信息的表示與運算 能否找到一個與負數等價的正數來代替該能否找到一個與負數等價的正數來代替該負數,然后用加法來代替減法呢?負數,然后用加法來代替減法呢? 答案是肯定的,就是采用補碼來表示數據。答案是肯定的,就是采用補碼來表示數據。 (2) 補補碼碼例子,糾正快了例子,糾正快了2小時的時鐘小時的時鐘逆時針- 253順時針+ 10 515- 123 時鐘以 12為模可見 2 可用 + 10 代替減法 加法2022-5-189類似類似 4 +
9、8 (mod 12) 5 + 7 (mod 12)記作記作 2 + 10 (mod 12)稱稱 + 10 是是 2 以以 12 為模的補數為模的補數結論:結論: 1. 兩個互為補數的數,它們絕對值之和即為兩個互為補數的數,它們絕對值之和即為 模模 數。數。2. 一個負數加上一個負數加上 “模模” 即得該負數的補數。即得該負數的補數。3. 正數的補數即為其本身。正數的補數即為其本身。2022-5-1810補補 碼碼 的的 實實 例例 計數器計數器(模(模 16) 101110110000+ 0101 1011100001011 0000 ?可見可見 1011 可用可用 + 0101 代替代替記作
10、記作 1011 + 0101 (mod 24)同理同理 011 + 101 (mod 23) 0.1001 + 1.0111 (mod 2)自然去掉自然去掉2022-5-1811 補補 碼碼 (符號數字化的補數)(符號數字化的補數)X補補 = 0, X X 02N + X X 0如如x = +1010 x補補 = 27+1 +( 1011000 )= 1000000001011000 x補補 = 0,1010 x = 10110001,0101000用用 逗號逗號 將符號位將符號位和數值位隔開和數值位隔開N位定點整數位定點整數2022-5-1812小數x 為真值。x = + 0.1110 x補
11、 = x 1 x 02 + x 0 x 1(mod 2)如x補 = 0.1110 x = 0.11000001.0100000 x補 = 2+( 0.1100000 )= 10.00000000.1100000用 小數點 將符號位和數值位隔開2022-5-1813在機器字長為在機器字長為8位時,位時, +1補補 = 0,0000001B,+127補補 = 0,1111111B, 1補補 = 28 1 = 1,1111111B,127補補 = 28 127 = 1,0000001B, +0補補 = 00000000B, 0補補 = 28 0 = 00000000B 在補碼中,零只有一種形式。在補
12、碼中,零只有一種形式。那么,原碼中用于表示負零的那個碼點那么,原碼中用于表示負零的那個碼點10000000B在定點整在定點整數補碼中被用來表示數補碼中被用來表示2n 1,例如,例如128(n = 8);在定點小);在定點小數補碼中被用來表示數補碼中被用來表示-1。 2022-5-1814求補碼的口訣求補碼的口訣= 100000= 1,011010101 + 1= 1,0110 因因 x原原 = 1,1010則則x補補 = 24+1 1010= 11111 + 1 1010= 1111110101010當真值為當真值為 負負 時,時,補碼補碼 可用可用 原碼除符號位外原碼除符號位外每位取反,末位
13、加每位取反,末位加 1 求得求得+ 1設設 x = 1010 時時2022-5-1815例例2-3 設機器字長為設機器字長為8位,位,X = 46,求,求X補補 =?解:解:X原原 = 10101110B。除了符號位外,對。除了符號位外,對X原原每每位取反得到位取反得到11010001B,在最低位加,在最低位加1得到得到11010010B。所以。所以X補補 =11010010B例例2-4 設機器字長為設機器字長為16位,位,Y = 116,求,求Y補補 =?解:解:Y原原 = 1000 0000 0111 0100 B, 則則Y補補 = 1111 1111 1000 1100 B = FF8C
14、H觀察上面兩道例題的結果,一個負數的原碼從它的低觀察上面兩道例題的結果,一個負數的原碼從它的低位算起,遇到第一個位算起,遇到第一個“1”時,原碼與補碼是相同的。時,原碼與補碼是相同的。超過這個超過這個“1”直至符號位之間的那段數位,原碼與補直至符號位之間的那段數位,原碼與補碼是相反的。碼是相反的。十六進制形式2022-5-1816第2章 計算機中信息的表示與運算 2. 1. 1 定點數的表示定點數的表示 補碼形式的補碼形式的n位定點整數的表示范圍是:位定點整數的表示范圍是: 2n1 +(2n11)例如,例如,8位定點整數的表示范圍是位定點整數的表示范圍是: 27 +(271),即,即: 128
15、+127;16位定點整數的表示范圍是位定點整數的表示范圍是: 215 +(2151),即,即: 32768+32767補碼表示的補碼表示的n位定點小數的表示范圍是位定點小數的表示范圍是: 1 + (12(n1) ) 。 2022-5-1817第第2章章 計算機中信息的表示與運算計算機中信息的表示與運算 反碼通常作為由原碼求補碼或由補碼求原碼的反碼通常作為由原碼求補碼或由補碼求原碼的中間過渡。中間過渡。 對于正數,反碼與原碼和補碼相同,直接在二對于正數,反碼與原碼和補碼相同,直接在二進制數值前面加上符號位進制數值前面加上符號位“0”即可。對于負數,即可。對于負數,反碼就是將負號反碼就是將負號“”
16、替換成替換成“1”,然后將二進制,然后將二進制數值逐位取反而得到。數值逐位取反而得到。 在反碼中,零有兩個編碼:在反碼中,零有兩個編碼: +0反反 =00000B,0反反=111111B。(3) 反反碼碼2022-5-1818第第2章章 計算機中信息的表示與運算計算機中信息的表示與運算 原碼、補碼和反碼,它們的一個共同特點就原碼、補碼和反碼,它們的一個共同特點就是將符號作為最高位與其數值部分一起編碼,而是將符號作為最高位與其數值部分一起編碼,而且正號用且正號用“0”表示,負號用表示,負號用“1”表示。這就給比較表示。這就給比較不同符號的數據的相對大小帶來了麻煩。在機器不同符號的數據的相對大小帶
17、來了麻煩。在機器看來,正數小于負數。看來,正數小于負數。 給每一個二進制整數的真值加上一個常數給每一個二進制整數的真值加上一個常數2n(n為真值的位數),使得正數的最高位變成為真值的位數),使得正數的最高位變成“1”、負數的最高位變成負數的最高位變成“0”,那么,機器比較得到的,那么,機器比較得到的兩個數之間的相對大小就是其真實的相對大小,兩個數之間的相對大小就是其真實的相對大小,這樣得到的編碼就稱為這樣得到的編碼就稱為“移碼移碼”。 (4) 移移碼碼2022-5-1819第2章 計算機中信息的表示與運算 移碼的定義:移碼的定義:X移移=2n + X ( 2n X01010101B,所以,所以
18、XY。(4) 移碼同一個真值的移碼與其補碼的差別僅僅是最高位相反。如果將補碼符號位中的“0”改為“1”或者“1”改為“0”,即可得到該真值的移碼。2022-5-1820第2章 計算機中信息的表示與運算 例如,例如, X = +0000000B, Y = 0000000B,則,則X移移 = 27 +X=10000000B + 0000000B=10000000B;Y移移 = 27 +Y=10000000B + (0000000B)=10000000B;所以,所以,+0移移 = 0移移,在移碼中零有唯一的編碼。,在移碼中零有唯一的編碼。(4) 移碼移碼僅針對定點整數而言的,定點小數沒有移碼的定義.
19、2022-5-18212022-5-1822例例2-5設機器字長設機器字長16位位,定點表示定點表示,尾數尾數15位位,數符數符1位位,問:問:(1)定點原碼整數表示時定點原碼整數表示時,最大正數是多少最大正數是多少?最小負數是多少最小負數是多少?(2)定點原碼小數表示時定點原碼小數表示時,最大正數是多少最大正數是多少?最小負數是多少最小負數是多少?(1)定點原碼整數表示定點原碼整數表示最大正數值最大正數值(2151)10(32767)10最小負數值最小負數值(2151)10(32767)10(2)定點原碼小數表示定點原碼小數表示 最大正數值最大正數值(1215)10(0.111.11)2最小
20、負數值最小負數值(1215)10(0.111.11)2注:注:1符號,數字符號,數字第2章 計算機中信息的表示與運算 2. 1 數據的表示數據的表示 2. 1. 1 定點數的表示定點數的表示 2. 1. 2 浮點數的表示浮點數的表示計算機只能識別定點數。浮點數怎樣處理呢?借助于數學中的“科學記數法”,把浮點數轉化成定點數。2022-5-1823第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 一個浮點數一個浮點數N將被表示成:將被表示成:N = M RE 。M 稱為稱為尾數尾數,是一個帶小數點的實數;,是一個帶小數點的實數;R稱為稱為基值基值,是一個常整數;,是一個常
21、整數;E稱為稱為階碼階碼,是一個整數。,是一個整數。 2022-5-1824第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示浮點數的編碼格式:尾數n+1位,階碼M+1位 尾數越長,表示的精度越高; 階碼越長,表示的范圍越高。在固定長度的浮點數格式內,這兩者是一對矛盾 2022-5-1825第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示2022-5-1826例例2-1 機器字長機器字長24位,欲表示位,欲表示 3萬的十進制數,萬的十進制數,在保證最大精度的前提下,除階符、數符各取在保證最大精度的前提下,除階符、數符各取1位,階碼、尾數各取幾位
22、?位,階碼、尾數各取幾位?解:解: log23104 =15, log215 =4故故階碼需階碼需4位,尾數取位,尾數取24-1-1-4=18位位第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 為了利用尾數所占的二進制數位來表示最多為了利用尾數所占的二進制數位來表示最多的有效數字,浮點數一般采用的有效數字,浮點數一般采用“規格化形式規格化形式”。 所謂所謂“規格化形式規格化形式”是指尾數絕對值的最高位是指尾數絕對值的最高位(第一位)必須為(第一位)必須為1,即尾數絕對值必須大于或等,即尾數絕對值必須大于或等于于1/R,這樣浮點數就有,這樣浮點數就有n個有效數字了。個
23、有效數字了。 2022-5-1827第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 規格化浮點數規格化浮點數尾數絕對值必須大于或等于尾數絕對值必須大于或等于1/R,即:即:R=2 尾數最高位為尾數最高位為1R=4 尾數最高尾數最高2位不全為位不全為0R=8 尾數最高尾數最高3位不全為位不全為02022-5-1828第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 通過移動尾數小數點的位置,可將不規格化通過移動尾數小數點的位置,可將不規格化浮點數轉化成浮點數轉化成“規格化規格化”浮點數。尾數的小數點每浮點數。尾數的小數點每向左向左/向右移動向
24、右移動1位,就應該給階碼加位,就應該給階碼加1或減或減1,以,以保證浮點數數值不變。保證浮點數數值不變。 在計算機中,小數點的位置是固定的,所以只能移動尾數。“規格化”在計算機內部的操作是,尾數每向左/向右移動1位,階碼就減1/加1。 2022-5-1829第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 通過移動尾數小數點的位置,可將不規格化通過移動尾數小數點的位置,可將不規格化浮點數轉化成浮點數轉化成“規格化規格化”浮點數。尾數的小數點每浮點數。尾數的小數點每向左向左/向右移動向右移動1位,就應該給階碼加位,就應該給階碼加1或減或減1,以,以保證浮點數數值不變。保
25、證浮點數數值不變。 在計算機中,小數點的位置是固定的,所以在計算機中,小數點的位置是固定的,所以只能移動尾數。只能移動尾數。“規格化規格化”在計算機內部的操作在計算機內部的操作是,尾數每向左是,尾數每向左/向右移動向右移動1位,階碼就減位,階碼就減1/加加1。 2022-5-1830第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 基數基數R越大,表數范圍越大,精度越低。越大,表數范圍越大,精度越低。 2022-5-1831第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 在規格化過程中,當浮點數階碼小于最小在規格化過程中,當浮點數階碼小于最
26、小階碼時,稱發生階碼時,稱發生“下溢下溢”。這時階碼(采用移碼表。這時階碼(采用移碼表示)為全示)為全0,又由于發生,又由于發生“下溢下溢”的浮點數的絕對的浮點數的絕對值很小,所以機器強制把尾數置成全值很小,所以機器強制把尾數置成全0,這樣整,這樣整個浮點數的所有數位就都是個浮點數的所有數位就都是0,便于實現,便于實現“判斷一判斷一個數是否為零個數是否為零”。這樣得到的浮點數零稱為。這樣得到的浮點數零稱為機器機器零零。機器零是一個特殊的合法的浮點數編碼,。機器零是一個特殊的合法的浮點數編碼,盡管它不符合規格化表示的要求。盡管它不符合規格化表示的要求。 2022-5-1832第2章 計算機中信息
27、的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 同樣地,在規格化過程中,浮點數的階碼還同樣地,在規格化過程中,浮點數的階碼還會出現會出現“大于最大階碼大于最大階碼”的現象,即全的現象,即全1的階碼的階碼(采用移碼表示)在加(采用移碼表示)在加1后變成了全后變成了全0,計算結果,計算結果的絕對值超出了定長浮點數所能表示的最大絕對的絕對值超出了定長浮點數所能表示的最大絕對值,這種現象稱為值,這種現象稱為“上溢上溢”。這時,機器將停止運。這時,機器將停止運算,進行溢出處理。算,進行溢出處理。 可見,浮點數的溢出是由階碼溢出導致的。可見,浮點數的溢出是由階碼溢出導致的。2022-5-1833第
28、2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 2022-5-1834浮點數的表示范圍2( 2m1)( 1 2n)2( 2m1)2n2( 2m1)( 1 2n)2( 2m1)2n最小負數最大負數最大正數最小正數負數區正數區下溢0上溢上溢215 ( 1 2-10) 2-15 2-10 2-15 2-10 215 ( 1 2-10) 設 m = 4 n =10原碼非規格化浮點數的表示范圍(續)尾補階移 ,尾n階m,規格化上溢下溢上溢mmmm第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示 浮點數的表示長度有浮點數的表示長度有32位和位和64位兩種
29、。稱位兩種。稱32位的位的浮點數為實數浮點數為實數(Real number)或單精度或單精度(Single-precision)浮點數,稱浮點數,稱64位的浮點數為長實數位的浮點數為長實數(Long Real number)或雙精度或雙精度(Double-precision)浮點數。浮點數。 至于在至于在32位或位或64位中,尾數絕對值的位數位中,尾數絕對值的位數n和階和階值的位數值的位數m各占多少,這就需要計算機體系結構各占多少,這就需要計算機體系結構的設計者權衡表數精度和表數范圍的需求,綜合的設計者權衡表數精度和表數范圍的需求,綜合劃分了。劃分了。2022-5-1837第2章 計算機中信息
30、的表示與運算 2. 1. 2 浮點數的表示浮點數的表示根據根據IEEE 754國際標準,常用的浮點數有兩種格式:國際標準,常用的浮點數有兩種格式:(1) 單精度浮點數單精度浮點數(32位位),階碼,階碼8位,尾數位,尾數24位位(內含內含1位符號位位符號位)。(2) 雙精度浮點數雙精度浮點數(64位位),階碼,階碼11位,尾數位,尾數53位位(內含內含1位符號位位符號位)。2022-5-1838第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示根據根據IEEE 754標準標準, 符號位符號位 “0”代表正數代表正數;“1”代表負數代表負數. 階碼用移碼表示,尾數規格化形
31、式階碼用移碼表示,尾數規格化形式,但格式但格式如下如下:1.XXXX。由于最高位總是。由于最高位總是1,因此省因此省略略,稱隱藏位稱隱藏位(臨時實數則不隱藏臨時實數則不隱藏). 一個規格化一個規格化32位浮點數位浮點數x的真值表示為的真值表示為x=(-1)S(1.M)2e-127 一個規格化一個規格化64位浮點數位浮點數x的真值表示為的真值表示為x=(-1)S(1.M)2e-1023 2022-5-1839第2章 計算機中信息的表示與運算 2. 1. 2 浮點數的表示浮點數的表示例例 把浮點數把浮點數1100000111001001000000000000轉轉換成十進制數。換成十進制數。解:解
32、: 符號位是符號位是1,階碼是,階碼是10000011,尾數尾數 是是1001001000000000000還原階碼:還原階碼: 10000011 01111111100 x=(-1)S1.1001001B24=-11001.001B=-25.125D2022-5-1840第2章 計算機中信息的表示與運算 例例2-5 設機器字長為設機器字長為16,請將,請將26分別表示成二進制分別表示成二進制定點數和規格化的浮點數。其中浮點數的階碼占定點數和規格化的浮點數。其中浮點數的階碼占5位位(含一位階符含一位階符),尾數占,尾數占11位位(含一位數符含一位數符)。解:設解:設X= 26 = 11010B
33、,采用科學計數法表示成,采用科學計數法表示成X= 0.11010B 20101B,所以,所以, X原原 =1,000000000011010 X補補 =1,111111111100110按照規格化浮點數的編碼格式,按照規格化浮點數的編碼格式,X表示為表示為 X原原 =0, 0101;1.1101000000 X補補 =0, 0101;1.00110000002022-5-1841第2章 計算機中信息的表示與運算 例例2-6 請寫出請寫出 53/512對應的尾數,分別用原碼和補對應的尾數,分別用原碼和補碼表示的規格化浮點數碼表示的規格化浮點數(設浮點數格式同上例,階設浮點數格式同上例,階碼用移碼
34、表示碼用移碼表示)。解解: 53/512 = 0.000110101B= (0.110101B) 211B 原碼表示尾數原碼表示尾數: 1. 1101010000;補碼表示尾數補碼表示尾數: 1. 0010110000;原碼表示階碼原碼表示階碼: 1, 0011;補碼表示階碼;補碼表示階碼: 1, 1101;移碼表示階碼移碼表示階碼: 0, 1101。原碼尾數的規格化浮點數原碼尾數的規格化浮點數: 0, 1101;1. 1101010000;補碼尾數的規格化浮點數補碼尾數的規格化浮點數: 0, 1101;1. 0010110000。 2022-5-1842第2章 計算機中信息的表示與運算 2.
35、 1 數據的表示數據的表示 2. 2 定點數的運算定點數的運算 2. 3 浮點數的運算浮點數的運算 2. 4 面向錯誤檢測與糾錯的數據編碼面向錯誤檢測與糾錯的數據編碼2. 5 字符的表示字符的表示 2. 6 面向存儲與傳輸的數據編碼面向存儲與傳輸的數據編碼 2022-5-1843第2章 計算機中信息的表示與運算 2. 2 定點數的運算定點數的運算 2. 2. 1 邏輯運算邏輯運算 n邏輯運算的特點是按位進行,每一位運算后得邏輯運算的特點是按位進行,每一位運算后得到一個獨立的結果,對其他位沒有影響。因此,到一個獨立的結果,對其他位沒有影響。因此,邏輯運算不存在進位、借位、溢出等問題。邏輯運算不存
36、在進位、借位、溢出等問題。n常見的邏輯運算有邏輯非常見的邏輯運算有邏輯非(NOT)、邏輯加、邏輯加(OR)、邏輯乘邏輯乘(AND)和邏輯異或和邏輯異或(XOR). 2022-5-1844第第2章章 計算機中信息的表示與運算計算機中信息的表示與運算 2. 2. 1 邏輯運算邏輯運算 邏輯非邏輯非, 也叫也叫“按位取反按位取反”或或“按位求非按位求非” ,就,就是對數據的每一位取反,將是對數據的每一位取反,將1變成變成0,0變成變成1。 例如,例如,X=0101 0101B,NOT X = 1010 1010B 實現實現“邏輯非邏輯非”的電路叫做的電路叫做“非門非門”,如下,如下圖所示。圖所示。2
37、022-5-1845第2章 計算機中信息的表示與運算 2. 2. 1 邏輯運算邏輯運算 邏輯加,也稱邏輯加,也稱“按位求邏輯或按位求邏輯或”運算,它的運算符是運算,它的運算符是“OR”或或“”。其運算規則是:。其運算規則是: 11=1,10=1,01=1,00=0。例如,例如,X=0101 0101B,Y = 1110 0010B。 X OR Y =1111 0111B。 實現實現“邏輯加邏輯加”的電路叫做的電路叫做“或門或門”,如下圖所示,如下圖所示2022-5-1846第第2章章 計算機中信息的表示與運算計算機中信息的表示與運算 2. 2. 1 邏輯運算邏輯運算 邏輯乘,也稱邏輯乘,也稱“
38、按位求邏輯與按位求邏輯與”運算,它的運運算,它的運算符是算符是“AND”或或“”“”。其運算規則是:。其運算規則是:1*1=1,1 * 0=0,0 * 1=0,0 * 0=0。例如,例如,X=0101 0101B,Y = 1110 0010B。 X AND Y =01000000B。實現實現“邏輯乘邏輯乘”電路叫做電路叫做“與門與門” ,如下圖所,如下圖所示示2022-5-1847第第2章章 計算機中信息的表示與運算計算機中信息的表示與運算 “邏輯異或邏輯異或”的運算符是的運算符是“XOR”或者或者“”。其運算規則是:當兩個操作數相異時,結果為其運算規則是:當兩個操作數相異時,結果為“真真(1
39、)”,否則為,否則為“假假(0)”,即,即1 1=0,1 0=1,0 1=1,0 0=0。這個運算規則與忽。這個運算規則與忽略進位的略進位的“二進制加法二進制加法”相同,所以相同,所以“邏輯異或邏輯異或”也稱也稱“按位加按位加” 。 例如,例如,X=0101 0101B,Y = 1110 0010B。 X XOR Y =10110111B。 實現實現“邏輯異或邏輯異或”的電路叫做的電路叫做“異或門異或門”, 如右圖所示如右圖所示.2022-5-1848第2章 計算機中信息的表示與運算 2. 2 定點數的運算定點數的運算 2. 2. 1 邏輯運算邏輯運算 2. 2. 2 移位運算移位運算1. 概
40、述概述 移位運算,也稱移位操作,是指在小數點位置移位運算,也稱移位操作,是指在小數點位置固定不變的情況下,將一個二進制數左移或右移固定不變的情況下,將一個二進制數左移或右移n位。位。 對于一個定點數,將其左移對于一個定點數,將其左移n位,相當于該數乘位,相當于該數乘以以2n;將其右移;將其右移n位,相當于該數除以位,相當于該數除以2n。2022-5-1849第2章 計算機中信息的表示與運算 計算機總是用定長的二進制位來表示一個計算機總是用定長的二進制位來表示一個數據。當數據左移或右移數據。當數據左移或右移n位后,必然會使其位后,必然會使其低低n位或高位或高n位出現空位。那么,對于空出來的位出現
41、空位。那么,對于空出來的數位應該填補數位應該填補0還是填補還是填補1呢?呢? 這與機器數被當作有符號數還是無符號數這與機器數被當作有符號數還是無符號數有關。有符號數的移位稱為有關。有符號數的移位稱為算術移位算術移位,無符號,無符號數的移位稱為數的移位稱為邏輯移位邏輯移位。2. 2. 2 移位運算2022-5-1850第2章 計算機中信息的表示與運算 2. 算術移位算術移位 算術移位的基本規則是:符號位保持不變,左算術移位的基本規則是:符號位保持不變,左移或右移移出的空位補移或右移移出的空位補0。 所以對于正數,算術移位出現的空位補所以對于正數,算術移位出現的空位補0。 對于負數,若用原碼表示,
42、算術移位出現的空對于負數,若用原碼表示,算術移位出現的空位也補位也補0;若用反碼表示,算術移位出現的空位;若用反碼表示,算術移位出現的空位則補則補1。 補碼表示的負數的空位補位原則是什么?補碼表示的負數的空位補位原則是什么?2. 2. 2 移位運算2022-5-1851第2章 計算機中信息的表示與運算 補碼的特點:一個負數的原碼從它的低位補碼的特點:一個負數的原碼從它的低位算起,遇到第一個算起,遇到第一個“1”時,原碼與補碼是相同的;時,原碼與補碼是相同的;超過這個超過這個“1”直至符號位之間的那段數位,原碼直至符號位之間的那段數位,原碼與補碼是相反的。與補碼是相反的。 所以,右移移出的空位位
43、于符號位之后,所以,右移移出的空位位于符號位之后,填補的內容應與原碼相反,即補填補的內容應與原碼相反,即補1。左移移出的。左移移出的空位是由它的低位生出的,填補的內容應與原空位是由它的低位生出的,填補的內容應與原碼相同,即補碼相同,即補0。 2. 2. 2 移位運算2022-5-1852 設機器數字長為設機器數字長為 8 位(含一位符號位位(含一位符號位),),寫出寫出A = +18時,三種機器數左、右移一位和兩位后的表時,三種機器數左、右移一位和兩位后的表示形式及對應的真值,并分析結果的正確性。示形式及對應的真值,并分析結果的正確性。解:A = +18則 A原 = A補 = A反 = 0,0
44、010010 +40,0000100 +90,0001001+720,1101000 +360,0110100 +180,0010010移位前A原=A補=A反對應的真值機 器 數移位操作1212= +10010B 設機器數字長為設機器數字長為 8 位(含一位符號位位(含一位符號位),),寫出寫出A = 18時,三種機器數左、右移一位和兩位后的表時,三種機器數左、右移一位和兩位后的表示形式及對應的真值,并分析結果的正確性。示形式及對應的真值,并分析結果的正確性。解:解:A = 18 41,0000100 91,0001001 721,1001000 361,0100100 181,0010010
45、移位前移位前對應的真值對應的真值機機 器器 數數移位操作移位操作1212原碼原碼= 10010B 41,1111011 91,1110110 721,0110111 361,1011011 181,1101101移位前移位前對應的真值對應的真值機機 器器 數數移位操作移位操作1212 51,1111011 91,1110111 721,0111000 361,1011100 181,1101110移位前移位前對應的真值對應的真值機機 器器 數數移位操作移位操作1212補碼補碼反碼反碼第2章 計算機中信息的表示與運算 3. 邏輯移位邏輯移位 邏輯移位處理的是無符號數,所以它的基邏輯移位處理的是無
46、符號數,所以它的基本規則是:無論左移還是右移,移出的空位都本規則是:無論左移還是右移,移出的空位都補補0。 無論移丟無論移丟0還是移丟還是移丟1,對結果的正確性和,對結果的正確性和精度都沒有影響精度都沒有影響 2. 2. 2 移位運算2022-5-1856第2章 計算機中信息的表示與運算 2. 2 定點數的運算定點數的運算 2. 2. 1 邏輯運算邏輯運算 2. 2. 2 移位運算移位運算2. 2. 3 加法與減法運算加法與減法運算 計算機通過引入補碼將定點數的加、減運算計算機通過引入補碼將定點數的加、減運算都統一成加法運算,所以參加加、減運算的操作都統一成加法運算,所以參加加、減運算的操作數
47、都必須表示成補碼。數都必須表示成補碼。 采用補碼進行計算還有一個好處,結果的符采用補碼進行計算還有一個好處,結果的符號位不用單獨處理,它是在運算過程中自然形成號位不用單獨處理,它是在運算過程中自然形成的。這是采用原碼進行計算所不具有的,大大簡的。這是采用原碼進行計算所不具有的,大大簡化了硬件設計。化了硬件設計。 2022-5-1857第2章 計算機中信息的表示與運算 2. 2 定點數的運算定點數的運算 2. 2. 3 加法與減法運算加法與減法運算設設n為機器數字長,則補碼的加法公式是為機器數字長,則補碼的加法公式是 X + Y補補= X補補 + Y補補(mod 2n)補碼的減法公式是補碼的減法
48、公式是 X Y補補 = X補補+ Y補補(mod 2n) 其中,其中,Y補補的求法是,將的求法是,將Y補補的各位的各位(連同符號連同符號位位)逐位取反,末位加逐位取反,末位加1。2022-5-1858第2章 計算機中信息的表示與運算 2. 2. 3 加法與減法運算加法與減法運算例例2-8 設機器數字長為設機器數字長為8位,若位,若X= + 10101B,Y= + 11B,求,求X+Y=?解:解:X補補 = 0 0010101B,Y補補 = 0 0000011B。 所以所以X + Y補補 = X補補 + Y補補 = 0 0011000B 則則 X+Y = + 11000B2022-5-1859第
49、2章 計算機中信息的表示與運算 例例2-9 設機器數字長為設機器數字長為8位,若位,若X= 0101010B,Y= 1010B,求,求X+Y=?解:解:X補補 = 1 1010110B,Y補補 = 1 1110110B。所以所以X + Y補補 = 1 1010110B + 1 1110110B 1 1 1001100B 在模在模28的意義下,超出字長的數位丟棄,的意義下,超出字長的數位丟棄,即即X + Y補補 = 1 1001100B,則,則X+Y = 110100B2. 2. 3 加法與減法運算加法與減法運算2022-5-1860第2章 計算機中信息的表示與運算 例例2-10 設機器數字長為
50、設機器數字長為8位,若位,若X= + 1110101B,Y= + 0001100B,求,求X+Y=?解:解:X補補 = 0 1110101B,Y補補 = 0 0001100B。所。所以以 X + Y補補 = 0 1110101B + 0 0001100B 1 0000001B即即X + Y補補 = 1 0000001B,則,則X+Y = 1111111B 參加運算的兩個操作數都是正數,但是加法參加運算的兩個操作數都是正數,但是加法運算的結果卻是一個負數。運算的結果卻是一個負數。2022-5-1861第2章 計算機中信息的表示與運算 這就是目前計算機在實現計算時特有的一這就是目前計算機在實現計算
51、時特有的一個現象個現象“溢出溢出(Overflow)”。 導致導致“溢出溢出”的原因是計算機字長是固定的,的原因是計算機字長是固定的,數值最高位產生的進位數值最高位產生的進位1被字長最高位吸收。這被字長最高位吸收。這個個“1”的屬性本來是數值,卻被當作了符號。的屬性本來是數值,卻被當作了符號。 2022-5-1862第2章 計算機中信息的表示與運算 當兩個同號的操作數相加時,如果它們的當兩個同號的操作數相加時,如果它們的絕對值相加的結果超出了操作數數值部分所能表絕對值相加的結果超出了操作數數值部分所能表示的最大值,則發生示的最大值,則發生“溢出溢出”。表現為結果的符。表現為結果的符號與操作數的
52、符號相反。如果是兩個異號的操作號與操作數的符號相反。如果是兩個異號的操作數相加,則絕對不會發生數相加,則絕對不會發生“溢出溢出”。 事實上,事實上,“溢出溢出”是相對的,只要字長再增是相對的,只要字長再增加加1位,原先的位,原先的“溢出溢出”就不會出現。就不會出現。 例如,操作數采用雙符號位,即便發生例如,操作數采用雙符號位,即便發生“溢溢出出”,也能夠保存結果。,也能夠保存結果。2022-5-1863溢出判斷溢出判斷(1) 單符號位判溢出單符號位判溢出參加加法操作的參加加法操作的 兩個數(減法時即為被減數和兩個數(減法時即為被減數和“求補求補”以后的減數)符號相同,其結果的符以后的減數)符號
53、相同,其結果的符號與原操作數的符號不同,即為號與原操作數的符號不同,即為溢出溢出。硬件實現硬件實現最高有效位的進位最高有效位的進位 符號位的進位符號位的進位 = 1如如1 0 = 10 1 = 1有有 溢出溢出0 0 = 01 1 = 0無無 溢出溢出溢出溢出2022-5-1864(2) 雙符號位判溢出雙符號位判溢出結果的雙符號位結果的雙符號位 相同相同 未溢出未溢出結果的雙符號位結果的雙符號位 不同不同 溢出溢出最高符號位最高符號位 代表其代表其 真正的符號真正的符號00, 11, 10, 01, 采用雙符號位的補碼稱為采用雙符號位的補碼稱為模模4的補碼的補碼,也稱,也稱變變形補碼形補碼。2
54、022-5-1865第2章 計算機中信息的表示與運算 例例2-12 設采用雙符號位,若設采用雙符號位,若X= + 1110101B,Y= + 0001100B,求,求X+Y=?解:解:X補補 = 00 1110101B,Y補補 = 00 0001100B。所。所以以X + Y補補 = 00 1110101B + 00 0001100B 01 0000001B 即即X + Y補補 = 01 0000001B。 雙符號位取值不同,表示發生了雙符號位取值不同,表示發生了“溢出溢出”。 但最高符號位仍表示結果的符號但最高符號位仍表示結果的符號2022-5-1866第2章 計算機中信息的表示與運算 2.
55、 2 定點數的運算定點數的運算 2. 2. 1 邏輯運算邏輯運算 2. 2. 2 移位運算移位運算2. 2. 3 加法與減法運算加法與減法運算2. 2. 4 乘法運算乘法運算2022-5-1867分析筆算乘法A = 0.1101 B = 0.1011AB = 0.100011110 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1符號位單獨處理乘數的某一位決定是否加被乘數 4個位積一起相加乘積的位數擴大一倍乘積的符號心算求得 ?2022-5-1868筆算乘法改進A B = A 0.1011= 0.1A + 0
56、.00A + 0.001A +0.0001A= 0.1A + 0.00A + 0.001( A +0.1A)= 0.1A + 0.010 A + 0. 1( A +0.1A)= 0.1A +0.1 0 A+0.1(A + 0.1A)= 2-1A +2-1 0 A+2-1(A + 2-1(A+0)第一步 被乘數A + 0第二步 1,得新的部分積第八步 1,得結果第三步 部分積 + 被乘數右移一位2022-5-1869改進后的筆算乘法過程(豎式)0 . 0 0 0 00 . 1 1 0 10 . 1 1 0 10 . 1 1 0 10 . 0 0 0 00 . 1 1 0 1初態,部分積 = 0乘
57、數為 1,加被乘數乘數為 1,加被乘數乘數為 0,加 01 . 0 0 1 110 . 1 0 0 11 11 . 0 0 0 11 1 1乘數為 1,加 被乘數0 . 1 0 0 01 1 1 11,得結果1 0 1 1=0 . 0 1 1 01,形成新的部分積1 1 0 1=0 . 1 0 0 11,形成新的部分積1 1 1 0=0 . 0 1 0 01,形成新的部分積1 1 1 1= 部 分 積 乘 數 說 明2022-5-1870小小 結結 被乘數只與部分積的高位相加被乘數只與部分積的高位相加 由乘數的末位決定被乘數是否與原部分積相加,由乘數的末位決定被乘數是否與原部分積相加, 然后然
58、后 1 形成新的部分積,形成新的部分積,同時同時 乘數乘數 1(末(末 位移丟),空出高位存放部分積的低位。位移丟),空出高位存放部分積的低位。硬件硬件3個寄存器,具有移位功能個寄存器,具有移位功能一個全加器一個全加器 乘法乘法 運算運算 加和移位。加和移位。n = 4,加加 4 次,移次,移 4 次次2022-5-1871原碼一位乘運算以小數為例設x原 = x0.x1x2 xn y原 = y0.y1y2 yn= (x0 y0). x*y*x y原 = (x0 y0).(0.x1x2 xn)(0.y1y2 yn)式中 x*= 0.x1x2 xn 為 x 的絕對值 y*= 0.y1y2 yn 為
59、 y 的絕對值 乘積的符號位單獨處理 x0 y0數值部分為絕對值相乘 x* y*2022-5-1872原碼一位乘遞推公式x* y* = x*(0.y1y2 yn)= x*(y12-1+y22-2+ + yn2-n)= 2-1(y1x*+2-1(y2x*+ 2-1(ynx* + 0)z1znz0 = 0z1 = 2-1(ynx*+z0)z2 = 2-1(yn-1x*+z1)zn = 2-1(y1x*+zn-1)z02022-5-1873例1已知 x = 0.1110 y = 0.1101 求x y原解: 數值部分的運算0 . 0 0 0 00 . 1 1 1 00 . 1 1 1 00 . 0
60、0 0 00 . 1 1 1 00 . 1 1 1 0部分積 初態 z0 = 0 部 分 積 乘 數 說 明0 . 0 1 1 101 . 0 0 0 11 01 . 0 1 1 01 1 00 . 1 0 1 10 1 1 01,得 z4邏輯右移邏輯右移1 1 0 1=0 . 0 1 1 11,得 z10 1 1 0=0 . 0 0 1 11,得 z21 0 1 1=0 . 1 0 0 01,得 z31 1 0 1=2022-5-1874 數值部分按絕對值相乘 乘積的符號位 x0 y0 = 1 0 = 1x* y* = 0. 1 0 1 1 0 1 1 0則 x y原 = 1. 1 0 1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3632-2019大蒜地膜覆蓋栽培及地膜回收技術規程
- DB32/T 3545.3-2021血液凈化治療技術管理第3部分:血液凈化醫療機構醫護人員培訓規范
- DB32/T 3528-2019豆丹人工養殖技術規程
- DB32/T 3375-2018公共場所母乳哺育設施建設指南
- DB31/T 919-2015城市濕地水生植物應用技術要求
- DB31/T 830-2014糧食儲備倉庫技術管理規范
- DB31/T 811-2014小企業安全生產標準化基本要求
- DB31/T 791-2014藥品生產質量管理系統信息技術規范
- DB31/T 728-2013食品冷庫經濟運行管理標準
- DB31/T 668.13-2013節能技術改造及合同能源管理項目節能量審核與計算方法第13部分:熱泵替代鍋爐系統
- 心理健康教育特色學校建設路徑
- 2025年全國保密教育線上培訓考試試題庫【完整版】附帶答案詳解
- (二模)2025年5月濟南市高三高考針對性訓練英語試卷(含答案解析)
- 修腳師勞動合同(新標準版)6篇
- TCHSA-012-2023-兒童口腔疾病治療中靜脈鎮靜技術規范
- 三方合伙開店協議合同
- 2025年新疆中考第一次模擬化學試題(含答案)
- 2025年危險品水路運輸從業資格考試復習題庫-上(單選題)
- 2025年-河北建筑安全員B證考試題庫附答案
- 《2024年版煤礦安全生產化標準化管理體系基本要求及評分方法》
- 2025-2030中國床墊行業市場深度調研及投資前與投資策略景研究報告
評論
0/150
提交評論