1.無符號數運算
只有相加才有可能溢位 ,以及小減大肯定溢位,大減小不會溢位
相加前在編碼前加個0,作為符號位.如果結果的符號為1,則溢位.
舉例,12+7=19(溢位)
01100+00111=10011
2.有符號數運算
兩個異號數相加或兩個同號數相減,其結果不會溢位 .僅當兩個同號數相加或兩個異號數相減 ,才有可能發生溢位的情況.
今以4位二進位制補碼整數加法運算為例說明如下:
(前注,4位二進位制只能表示-8~7,所以必需在前面加個符號位)
9+5=14
01001+00101=01110
(-9)+(-5)=-14
10111+11011=110010
12+7=19(溢位)
01100+00111=10011
(-12)+(-7)=-19(溢位)
10100+11001=101101
14-1=13
01110+11111=101101
-14+1=-13
10010+00001=10011
判別方法:當符號相同的兩數相加時,如果結果的符號與加數(或被加數)不相同,則為溢位。
真實案例:
mov bx,9048h ;bx=9048h,即bh=90h,bl=48h
sub bh,bl ;bh=48h,bl=48h,即bx=4848h
;cf=0 of=1
解釋:無符號運算,大數減小數,所以不溢位,所以cf=0;
有符號運算,90-48=10010000-01001000=10010000+10111000=101001000(必須轉成補碼加法,才能使用該方法判斷,且暫存器bh,bl中的最高位即為符號位)
組合語言使用加減法實現有符號數除法
老問題了,今天突然想起來實現一下。主要有幾個問題要注意 1 同號則做減法,異號則做加法 2 運算結束 若 被除數 或 除數 為0結束,或其符號和 被除數 相反則結束,兩種情況還要做不同的處理 使用加減法實現有符號數除法 1 同號則做減法,異號則做加法 2 運算結束 若 被除數 或 除數 為0結束,或...
加減運算 加減法運算的尾數法
在數量關係中,涉及到整數的乘法和加減法,可以考慮尾數 在資料分析中,凡是涉及到數的加減運算,可以考慮尾數法,即便不是整數間的加減法,尾數法也有參考價值。比如123.1 45.6,尾數大概率是7,小概率6或者8,而不可能是其餘的數字。為什麼可能是6或者8呢?因為1和6可能是四捨五入得來的。1的精確值是...
時間類的加 減法賦值運算
輸入的第乙個整數n,表示有n組測試資料,每組4個整數,前三個整數為 hh,mm,ss,分別表示時 分 秒,其值都在int範圍內,最後乙個整數為m。output 每個輸入對應兩行輸出,分別為時間 hh,mm,ss 加上m秒和減去m秒後的值。錯誤的時間輸出 time error sample input...