簡體   English   中英

需要一些幫助來理解使用 2 的補碼的二進制加法/減法

[英]Need some assistance understanding binary addition/subtraction using 2's complement

如果 A = 01110011,B = 10010100,我將如何添加這些?

我這樣做了: 在此處輸入圖像描述

即:01110011 + 10010100 = 100000111

雖然,它本質上不是 115 + (-108) = 7,而我得到的是 -249

編輯:我看到刪除最高位(溢出)我得到 7 這是我正在尋找的,但我不明白為什么你不會有額外的位。

編輯**:好的,我想通了。 正如我所假設的那樣,沒有溢出,因為 7 在 [-128, 127](8 位)內。 相反,就像奧馬爾暗示的那樣,我應該從加法中刪除“額外的”1。

你的計算是正確的,結果是正確的。

您說第二個數字是 -108,因此您的兩個數字都被解釋為有符號的 8 位值。 因此,您還應該將結果解釋為 8 位有符號值,這就是必須刪除第 9 位的原因,因此結果為 7 (00000111)。

在真正的硬件上,例如 8 位 CPU,由於所有寄存器都是 8 位寬,您只能存儲結果的最低 8 位,這里是 7 (00000111)。 在某些情況下,第 9 位也可能放在進位/溢出標志內,因此它不會完全“丟棄”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM