【计算机组成原理】定点数的表示和运算
文章目錄
- 定點數表示
- 定點數的運算
定點數表示
無符號數和有符號數都是機器數
1)無符號數
指整個機器字長的全部二進制位均為數值位,沒有符號位,相當于數的絕對值。
若機器字長為8位,則數的表示范圍為0~28-1,即0 ~255。
2)有符號數
在機器中,數的“正”,“負”號是無法識別的,有符號數用“0”表示“正”號,用“1”表示“負"號,從而將符號也數值化,并通常約定二進制數的最高位為符號位,即將符號位放在有效數字的前面,組成有符號數。
有符號數的機器表示有原碼、補碼、反碼和移碼。
為了能正確區別真值和各種機器數,約定用X表示真值
[X]原 表示原碼
[X]補 表示補碼
[X]反 表示反碼
[X]移 表示移碼
根據小數點的位置是否固定,在計算機中有兩種數據格式:
定點表示和浮點表示
定點表示即約定機器數中的小數點位置是固定不變的,小數點不再使用“.”表示,而是約定它的位置。理論上,小數點位置固定在哪位都可以,但在計算機中通常采用兩種簡單的約定:
將小數點的位置固定在數據的最高位之前,或固定在最低位之后。一般常稱前者為定點小數,后者為定點整數。
1)定點小數
定點小數是純小數,約定小數點位置在符號位之后、有效數值部分最高位之前。若數據X的形式為X = x0 . x1……xn,(其中x0為符號位,x1——xn是數值的有效部分,也稱尾數,x1為最高有效位),則在計算機中的表示形式如圖所示(設機器字長n+1位)。
①當x0=0,x1——xn均為1時,x為其所能表示的最大正數,真值等于1 - 2-n.
②當x0=1,x1——xn均為1時,X為其(原碼)所能表示的最小負數,真值等于2-n - 1。
2)定點整數
定點整數是純整數,約定小數點位置在有效數值部分最低位之后。若數據X的形式為X = x0x1……xn
(其中x0為符號位,x1——xn是尾數,xn為最低有效位),則在計算機中的表示形式如圖所示:
①當x0 = 0, x1——xn均為1時,x為其所能表示的最大正數,真值等于2n-1。
②當x0 = 1, x1——xn均為1時, X為其(原碼)所能表示的最小負數,真值等于1 - 2n。
1)原碼表示法
原碼是一種比較簡單、直觀的機器數表示法,用機器數的最高位表示該數的符號,其余的各位表示數的絕對值。原碼的定義如下:
- 純小數的原碼定義
如果字長為n+1,則原碼小數的表示范圍為:2-n-1 ≤ x ≤ 1-2-n - 純整數原碼定義
如果字長為n+1,則原碼小數的表示范圍為:1 - 2n ≤ x ≤ 2n - 1
2)補碼表示法
加減法采用統一的加法操作
- 純小數的補碼定義
如果字長為n+1,則原碼小數的表示范圍為:-1 ≤ x ≤ 1 - 2n - 純整數的補碼定義
如果字長為n+1,則原碼小數的表示范圍為:- 2n ≤ x ≤ 2n - 1
0的補碼、移碼唯一,原碼、反碼不唯一
定點數的運算
移位運算根據操作對象的不同分為算術移位和邏輯移位。
有符號數的移位稱為算術移位,邏輯移位的操作對象是邏輯代碼,可視為無符號數。
1)算術移位
算術移位的對象是有符號數,在移位過程中符號位保持不變。
對于正數,移位后出現的空位均以0添之。
對于負數,由于原碼、補碼、反碼的表示形式不同,因此當機器數移位時,對其空位的添補規則也不同。
注意:不論是正數還是負數,移位后其符號位均不變,且移位后都相當于對真值補0,根據補碼、反碼的特性,所以在負數時填補代碼有區別。
對于原碼,左移位若不產生溢出, 相當于乘以2(與十進制的左移一位相當于乘以10類似),右移一位, 若不考慮因移出而舍 去的末位尾數,相當于除以2。
正數的原碼、補碼與反碼都相同,因此移位后出現的空位均以0添之。
對于負數,由于原碼、補碼和反碼的表示形式不同,因此當機器數移位時,對其空位的添補規則也不同。
①負數的原碼數值部分與真值相同,因此在移位時只要使符號位不變,其空位均添0.
②負數的反碼各位除符號位外與負數的原碼正好相反,因此移位后所添的代碼應與原碼相反,即全部添1。
③分析由原碼得到補碼的過程發現,當對其由低位向高位找到第一一個“1”時,在此“1”左邊的各位均與對應的反碼相同,而在此“1”右邊的各位(包括此“1”在內)均與對應的原碼相同。因此負數的補碼左移時,因空位出現在低位,則添補的代碼與原碼相同,即添0;右移時因空位出現在高位,則添補的代碼應與反碼相同,即添1.
(2)邏輯移位
邏輯移位將操作數視為無符號數,移位規則:
邏輯左移時,高位移丟,低位添0; 邏輯右移時,低位移丟,高位添0。注意:邏輯移位不管是左移還是右移, 都添0.
總結
以上是生活随笔為你收集整理的【计算机组成原理】定点数的表示和运算的全部內容,希望文章能夠幫你解決所遇到的問題。