我想添加以下兩個二進制數字,但我無法這樣做因爲我不知道這是否溢出?這是一個溢出? - 二進制補碼
110101 + 010111 我得到的答案是:1001100
難道我刪除了答案最左邊的1或者我把它?通過刪除它我得到12,否則答案是不正確的。難道我做錯了什麼?
這是正確的嗎?
我想添加以下兩個二進制數字,但我無法這樣做因爲我不知道這是否溢出?這是一個溢出? - 二進制補碼
110101 + 010111 我得到的答案是:1001100
難道我刪除了答案最左邊的1或者我把它?通過刪除它我得到12,否則答案是不正確的。難道我做錯了什麼?
這是正確的嗎?
這個問題的答案取決於你正在談論的系統位字的大小。在8位(或更高版本)系統,和你做2的補的
110101 + 010111 = 1001100
總和是一樣的:
00110101 + 00010111 = 01001100
是:53 + 23 = 76
沒有溢出或執行。
如果它是一個7位系統,做2的補,那麼你必須:
0110101 + 0010111 = 1001100
這是53 + 23 = -52
。有溢出,但沒有執行。
如果它是一個6位的系統,做2的補碼,然後:
110101 + 010111 = (1)001100
這是-11 + 23 = 12
。沒有溢出,但有一個執行。請注意,在6位系統中,技術上不可能有1001100
,因爲它是7位。你將有001100
。
僅供參考,請參閱The CARRY flag and OVERFLOW flag in binary arithmetic。
清除了很多東西 - 謝謝 – GDesigns 2015-04-04 15:12:34
最終答案是1001100這應該是(-11)+ 23 = 12.但是,如果我要刪除最左邊的1,我得到12 - 我只是把1留在? – GDesigns 2015-04-04 14:57:36