補碼加法的步驟
發布時間:2014/6/1 21:46:13 訪問次數:2075
(1)將兩個數轉換為補碼形式。
(2)對兩個數的補碼形式進行二進制加法運算,如果出現向高位的進位則舍棄不要。
(3)判斷結果是否溢出:如果溢出,QSH-060-01-F-D-TR則本次計算不正確,進入溢出處理流程;否則,對結果再次求補,即得到結果的真值。
所謂溢出,是指運算的結果超出了給定的二進制存儲空間的表示范圍。加法運算中,兩個同號數值相加才可能出現溢出情況。因此,判斷溢出的標志是:如果兩個正數相加的結果符號位為,或者兩個負數相加的結果的符號位為0,就說明出現了溢出。當出現溢出時,有兩個解決方法:一是直接舍棄,報錯;二是增加存儲空間位數,重新計算。
在下面的例子中,不做特別說明,補碼形式均用8位二進制數表示。
例如,用補碼計算64+(-10)。
第一步:將64和-10變成補碼形式。
第二步:執行補碼加法:
0100 0000
+ 1111 0110
1 0011 0110 B~OOll OllOB(舍棄向最高位的進位)
第三步:因為正數和負數相加不可能產生溢出,結果正確,可求真值
0011 0llOB=54
例如,用16位補碼計算64+65,
第一步:將64和65變成補碼形式:
[64】補=OOO0 0000 0100 0000B [65]aiF=OOO0 0000 0100 000IB
第二步:執行補碼加法:
0000 0000 0100 0000
+ 0000 0000 0100 0001
= 0000 0000 1000 0001
第三步:因為正數和正數相加結果應該還是正數,而結果的符號位為0,說明結果正確,可求真值
0000 0000 1000 000IB=129
(1)將兩個數轉換為補碼形式。
(2)對兩個數的補碼形式進行二進制加法運算,如果出現向高位的進位則舍棄不要。
(3)判斷結果是否溢出:如果溢出,QSH-060-01-F-D-TR則本次計算不正確,進入溢出處理流程;否則,對結果再次求補,即得到結果的真值。
所謂溢出,是指運算的結果超出了給定的二進制存儲空間的表示范圍。加法運算中,兩個同號數值相加才可能出現溢出情況。因此,判斷溢出的標志是:如果兩個正數相加的結果符號位為,或者兩個負數相加的結果的符號位為0,就說明出現了溢出。當出現溢出時,有兩個解決方法:一是直接舍棄,報錯;二是增加存儲空間位數,重新計算。
在下面的例子中,不做特別說明,補碼形式均用8位二進制數表示。
例如,用補碼計算64+(-10)。
第一步:將64和-10變成補碼形式。
第二步:執行補碼加法:
0100 0000
+ 1111 0110
1 0011 0110 B~OOll OllOB(舍棄向最高位的進位)
第三步:因為正數和負數相加不可能產生溢出,結果正確,可求真值
0011 0llOB=54
例如,用16位補碼計算64+65,
第一步:將64和65變成補碼形式:
[64】補=OOO0 0000 0100 0000B [65]aiF=OOO0 0000 0100 000IB
第二步:執行補碼加法:
0000 0000 0100 0000
+ 0000 0000 0100 0001
= 0000 0000 1000 0001
第三步:因為正數和正數相加結果應該還是正數,而結果的符號位為0,說明結果正確,可求真值
0000 0000 1000 000IB=129