設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 情況分類 符號位數值位最高位 溢位判定結果 正數...