4 在二補數的加法運算中,當兩個負數相加時,下列那一種情況表示發生溢位(overflow)?
(A)結果是負數
(B)結果的最左邊符號位元變成 1
(C)結果是零
(D)結果是正數
答案:登入後查看
統計: A(19), B(90), C(22), D(195), E(0) #3704747
統計: A(19), B(90), C(22), D(195), E(0) #3704747
詳解 (共 1 筆)
#7292777
Google ai
這是一道關於**二補數(2's Complement)**運算中「溢位」(Overflow)判定邏輯的經典題目。
這題的正確答案是 (D) 結果是正數。
? 詳解與觀念分析
在電腦系統中,溢位發生在計算結果超出了該位元數所能表示的範圍。針對二補數的加法,有一個非常簡單且直觀的判定準則:
1. 溢位發生的先決條件
只有在以下兩種情況下,加法才「可能」發生溢位:
* 正數 + 正數:如果結果變成「負數」,代表發生溢位。
* 負數 + 負數:如果結果變成「正數」,代表發生溢位。
> 注意: 一正一負相加,結果絕對不會超出原本的範圍,因此絕對不會發生溢位。
>
2. 針對本題(負數 + 負數)
題目設定背景是「兩個負數相加」。在二補數系統中,負數的最左邊位元(符號位元)必定是 1。
* 正常情況:負數 + 負數 = 負數(符號位元應維持為 1)。
* 溢位情況:當兩個很大的負數相加,產生的數值太小以至於超出了負數邊界,進位會打亂符號位元,導致結果的符號位元變成 0(即顯示為正數)。
? 選項分析
* (A) 結果是負數:這是正常現象。負數加負數理應得到負數。
* (B) 最左邊符號位元變成 1:這代表結果是負數,屬於正常運算結果。
* (C) 結果是零:兩個負數相加不可能得到零(除非數值為 0,但在二補數定義中 0 不算負數)。
* (D) 結果是正數:正確。當負 + 負卻算出正數,這在數學上是不可能的,說明發生了溢位。
舉個簡單的例子(以 4 位元二補數為例)
4 位元二補數範圍是 -8 到 +7。
* 計算 (-5) + (-4):
* -5 的二補數:1011
* -4 的二補數:1100
* 相加結果:10111(捨棄最左邊進位後為 0111)
* 0111 在十進位中是 +7。
* 結論:兩個負數相加竟然得到正數 +7,這就是典型的溢位。
這題的正確答案是 (D) 結果是正數。
? 詳解與觀念分析
在電腦系統中,溢位發生在計算結果超出了該位元數所能表示的範圍。針對二補數的加法,有一個非常簡單且直觀的判定準則:
1. 溢位發生的先決條件
只有在以下兩種情況下,加法才「可能」發生溢位:
* 正數 + 正數:如果結果變成「負數」,代表發生溢位。
* 負數 + 負數:如果結果變成「正數」,代表發生溢位。
> 注意: 一正一負相加,結果絕對不會超出原本的範圍,因此絕對不會發生溢位。
>
2. 針對本題(負數 + 負數)
題目設定背景是「兩個負數相加」。在二補數系統中,負數的最左邊位元(符號位元)必定是 1。
* 正常情況:負數 + 負數 = 負數(符號位元應維持為 1)。
* 溢位情況:當兩個很大的負數相加,產生的數值太小以至於超出了負數邊界,進位會打亂符號位元,導致結果的符號位元變成 0(即顯示為正數)。
? 選項分析
* (A) 結果是負數:這是正常現象。負數加負數理應得到負數。
* (B) 最左邊符號位元變成 1:這代表結果是負數,屬於正常運算結果。
* (C) 結果是零:兩個負數相加不可能得到零(除非數值為 0,但在二補數定義中 0 不算負數)。
* (D) 結果是正數:正確。當負 + 負卻算出正數,這在數學上是不可能的,說明發生了溢位。
舉個簡單的例子(以 4 位元二補數為例)
4 位元二補數範圍是 -8 到 +7。
* 計算 (-5) + (-4):
* -5 的二補數:1011
* -4 的二補數:1100
* 相加結果:10111(捨棄最左邊進位後為 0111)
* 0111 在十進位中是 +7。
* 結論:兩個負數相加竟然得到正數 +7,這就是典型的溢位。
1
0