3 以 8 位元 2 的補數(2's complement)表示數值時,a、b、c 分別為 11001100、 10101010、10001000。進行 2 的補數運算時,下列何者錯誤?
(A) -a=00110100
(B) a-c=01000100
(C) a+b=11110110
(D) -b-c=11001110

答案:登入後查看
統計: A(29), B(29), C(76), D(24), E(0) #3428937

詳解 (共 1 筆)

#6620828

(A) -a = 00110100

  • 原本 a = 11001100(-52)
  • -a 就是 +52 → 二進位為 00110100 ✔️ 正確

(B) a - c = 11001100 - 10001000

  • a = -52,c = -120
  • -52 - (-120) = -52 + 120 = +68
  • +68 的二進位是 01000100 ✔️ 正確

(C) a + b = -52 + (-86) = -138

  • 8 位元 2's complement 範圍是 -128 到 +127
  • -138 超出範圍,會發生溢位,造成結果 11110110(-10)
  • ❌ C 錯誤:溢位導致錯誤結果 -138 ≠ -10
(D) -b - c = 86 - (-120) = 86 + 120 = 206
  • 雖然是溢位,但 206 的二進位是 11001110,免強...
1
0