什麼是二進位制數的減法?


二進位制數的減法是透過對減數進行二進位制補碼來實現的。二進位制補碼透過以下步驟完成:

  • 對每一位取反。即將 1 變成 0,0 變成 1。
  • 在結果上加 1。

以下示例說明了使用上述步驟進行二進位制數減法運算。

示例:11101011 - 01100110

需要從第一個值 11101011 中減去第二個值 01100110。

首先對第二個值 01100110 進行二進位制補碼,即按照上面所示的兩個步驟進行。

Step 1: 0 1 1 0 0 1 1 0
1 0 0 1 1 0 0 1 (change 1 to 0 and 0 to 1)
Step 2: 1 0 0 1 1 0 0 1
             +1 (add 1)
1 0 0 1 1 0 1 0 (resultant)
              1
Then, add the resultant to the first value.
1 1 1 0 1 0 1 1 (first value)
+1 0 0 1 1 0 1 0 (resultant)
1 0 0 0 0 1 0 1(output)
ignore 1 1 1 1 1 1
The output is 10000101.

它可以理解從較大的數中減去較小的數的過程。最高有效位 (MSB) 或最左邊的位設定為 1 以指示負數。MSB 被稱為符號位。其餘 7 位用於表示值。

以下是將較大的數從較小的數中減去的步驟:

  • 可以對較小的數進行二進位制補碼。
  • 將其用於將結果值加到較小的數上。
  • 可以將 MSB 更改為 0。
  • 可以對結果數進行二進位制補碼。

MSB 表示負值。

示例:10010101 – 10110100

Step 1: 1 0 1 1 0 1 0 0 (greater number)
0 1 0 0 1 0 1 1 (change 1 for 0 and 0 for 1)
0 1 0 0 1 0 1 1
             +1 (add 1)
0 1 0 0 1 1 0 0
            1 1
Step 2: 1 0 0 1 0 1 0 1 (smaller number)
+0 1 0 0 1 1 0 0 (add the resultant value to smaller number)
1 1 1 0 0 0 0 1
    1 1 1
Step 3: 1 1 1 0 0 0 0 1
            0 1 1 0 0 0 0 1 (change MSB bit to 0)
Step 4: 0 1 1 0 0 0 0 1
            1 0 0 1 1 1 1 0 (change 1 for 0 and 0 for 1)
 1 0 0 1 1 1 1 0
              +1
1 0 0 1 1 1 1 1
Output = 10011111 (MSB indicates a negative value)

更新於: 2021年7月27日

767 次檢視

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告