定點加減法運算
原碼加減法:
同號:數值部分相加,結果的符號與加數符號相同。
異號:數值部分相減(要將減數取補,變成加法),結果的符號取絕對值大的數的符號。
原碼一般不用來做加減運算,而多用來做乘除運算,做加減運算時,多用補碼。
補碼加減法運算:符號位與數值位一起參與運算。
運算規則:
兩個補碼相加,符號位也參與運算,最終兩個數和的補碼等於兩個數的補碼之和。
[x+y]補= [x]補+[y]補 任意兩數的補碼之和等於兩數之和的補碼
[-y]補 = -[y]補 ( [-y]補和[y]補互為機器負數的關係)
[x-y]補= [x]補+[-y]補
由[y]補 求 [-y]補 :
設[y]補=ys,y1y2…yn,按照正負分為兩種情況:
①0≤y≤2n-1: y為正數,[y]補=[y]原=0,y1y2…yn,則
[-y]原=1,y1y2…yn。
-y為負數,按原碼變補碼規則得[-y]補=1, y1y2…yn+1
②-2n≤y<0 : y為負數,[y]補=1,y1y2…yn,則
[y]原=1, y1y2…yn+1。
-y為正數,[-y]原=[-y]補=0, y1y2…yn+1。
綜合以上情況得,已知[y]補求[-y]補的法則是:
對[y]補各位(包括符號位)取反且末位加1,就可以得到[-y]補
溢位判斷和處理:
根據符號位、進製位來判斷!
用乙個符號位
xs=ys=0,ss=1 正溢 xs=ys=1,ss=0 負溢
溢位=xsysss+xsysss
用進製位
cs=0,c1=1 正溢 cs=1,c1=0 負溢
溢位= csc1+csc1 = cs + c1
用變形補碼(雙符號位)
當產生溢位時,用乙個符號位無法指示正確的結果符號;
用雙符號位進行判斷:第一符號位為正確符號
符號位 00:表示正數, 11:表示負數
結果的符號位為01時,稱為正溢;為10時,稱為負溢
符號位為00,11無溢位
[x]補 0.1101 [x]補 00.1101
+[y]補 0.1001 +[y]補 00.1001
[x+y]補 1.0110 [x+y]補 01.0110
定點運算 加減法運算
補碼加減運算公式 即 a b a 補碼 b 補碼 補碼,所以求和運算全部用補碼的加法,結果是結果的補碼 溢位判斷 一位符號位判斷溢位 定義 參加操作的兩個數符號相同,其結果的符號與原運算元的符號不同,硬體實現 最高有效位的進製 異或 符號位的進製 1 情況分類 符號位數值位最高位 溢位判定結果 正數...
定點數的加減法
數值運算的核心是指加 減 乘 除四則算術。由於計算機中的數有定點和浮點兩種表示形式,因此相應有定點數的運算和浮點數的運算。本文將介紹計算機中定點數的加減法運算過程。注意,理解本文的前提是要清楚知道頂點數的原始碼 反碼和補碼的含義,以及定點數在計算機中的表示形式。1.補碼加法 由於計算機中定點數均以補...
定點c程式之二 定點加減法
1.定點數表示的基礎 q值。q值就是小數點的位置。16位整形數表示小數 32位整形數表示小數 2.將浮點加減法轉化為定點加減法最重要的是必須保持兩個運算元的q值一致。如果兩者不一致,一般地,為了保證數的精度,在運算前將q值小的數調整為與q值大的數的q值,同時必須注意是否溢位。設x的q值為qx,y的q...