定點數加減法及其溢位判斷原理

2022-09-14 04:51:08 字數 2008 閱讀 7295

設x為乙個數的真值,\(m=2^n\)(n為機器位數),則在數學表示上

\([x]_補 = m+x\ (mod m),-2^\le x < 2^\)

\([x]_補 + [y]_補 = m+x+m+y(mod m)=m+x+y(mod m)=[x+y]_補\)

可見,補碼加法直接使用加法器相加即可

\([x]_補-[y]_補=m+x-m-y=x-y(mod m)=m+x+m-y(mod m)=[x]_補+[-y]_補\)

補碼減法可以轉化為補碼加法,這也是計算機可以只設計加法器而不一定需要減法器的原因

如何將\([y]_補\)與\([-y]_補\)進行轉化是補碼減法的重點

設\([y]_補=y_ny_\dots y_1\)

(1)當\(0\le y < 2^\)時

\[[y]_補=[y]_原=0,y_y_\dots y_1\\

[-y]_原=1,y_y_\dots y_1\]

y為正,-y為負,則

\[[-y]_補=1,\overline}\ \overline}\dots \overline + 1

\](2)當 \(-2^ 時

\[[y]_補=1,y_ y_\dots y_1 \\

[y]_原=1,\overline}\ \overline}\dots \overline + 1 \\

[-y]_原=0,\overline}\ \overline}\dots \overline + 1 \]

y為負,-y為正,則

\[[-y]_補=[-y]_原=0,\overline}\ \overline}\dots \overline + 1

\]綜上所述:機器負數轉換方法為

$$[-y]_補=\sim [y]_補 + 1$$

由於機器存放數字的二級制數碼位數有限,當進行模m加法時會出現異常的符號改變現象,稱為溢位。溢位分為以下兩種:

正溢:兩個整數相加得到乙個負數

負溢:兩個負數相加得到乙個負數

假設加法情況如下:

\[運算元a:[x]_補=x_x_\dots x_1\\

運算元b:[y]_補=y_y_\dots y_1\\

兩數和:[s]_補=s_s_\dots s_1

\]方法一:直接檢測

當a>0,b>0但s<0時或a<0,b<0但s>0時顯然發生了溢位,表示為:

\[溢位=x_ny_n\overline + \overline\ \overline s_n

\]假設兩數運算時產生的進製分別是$$c_c_\dots c_1$$

那麼根據剛才的討論可以得到

當a>0,b>0但s<0時,\(a_n=0,b_n=0,s_n=1\),即n-1位發生進製,n位不可能進製,\(c_=1,c_=0\);此時正溢

當a<0,b<0但s>0時,\(a_n=1,b_n=1,s_n=0\),即n位發生進製,n-1位不可能進製,\(c_=1,c_=0\);此時負溢

當a>0,b>0但s>0時,\(a_n=0,b_n=0,s_n=0\),即均不進製,\(c_=0,c_=0\);此時不溢位

當a<0,b<0但s<0時,\(a_n=1,b_n=1,s_n=1\),即均進製,\(c_=1,c_=1\);此時不溢位

綜上所述,那麼可以得到$$溢位=c_ \oplus c_n $$

在運算時臨時將兩運算元的符號位複製一位補在最高位+1的位置

這樣運算就會變成

\[運算元a:[x]_補=x_x_x_\dots x_1\\

運算元b:[y]_補=y_y_y_\dots y_1\\

兩數和:[s]_補=s_s_s_\dots s_1

\]根據\(s_s_\)的不同結果,我們就可以判斷是否發生溢位,這個原理與進製檢測其實是相同的

\[ s_s_=00;無溢位\\

s_s_=01;正溢\\

s_s_=10;負溢\\

s_s_=11;無溢位\\

\]為了節約儲存位數,最後儲存結果時會忽略最高位的\(s_\)的計算結果,僅在運算時擴充為雙符號位

定點數的加減法

數值運算的核心是指加 減 乘 除四則算術。由於計算機中的數有定點和浮點兩種表示形式,因此相應有定點數的運算和浮點數的運算。本文將介紹計算機中定點數的加減法運算過程。注意,理解本文的前提是要清楚知道頂點數的原始碼 反碼和補碼的含義,以及定點數在計算機中的表示形式。1.補碼加法 由於計算機中定點數均以補...

定點補碼加減法運算 定點加減法運算與溢位判斷處理

定點加減法運算 原碼加減法 同號 數值部分相加,結果的符號與加數符號相同。異號 數值部分相減 要將減數取補,變成加法 結果的符號取絕對值大的數的符號。原碼一般不用來做加減運算,而多用來做乘除運算,做加減運算時,多用補碼。補碼加減法運算 符號位與數值位一起參與運算。運算規則 兩個補碼相加,符號位也參與...

定點運算 加減法運算

補碼加減運算公式 即 a b a 補碼 b 補碼 補碼,所以求和運算全部用補碼的加法,結果是結果的補碼 溢位判斷 一位符號位判斷溢位 定義 參加操作的兩個數符號相同,其結果的符號與原運算元的符號不同,硬體實現 最高有效位的進製 異或 符號位的進製 1 情況分類 符號位數值位最高位 溢位判定結果 正數...