看板 C_and_CPP 關於我們 聯絡資訊
※ [本文轉錄自 Programming 看板 #1Wcd5CQ0 ] 作者: lueichun (= =) 看板: Programming 標題: [問題] 為什麼互為2的補數的兩個數字,必定是相 時間: Tue May 11 19:58:02 2021 如題,為什麼互為2的補數的兩個數字,彼此一定是相反數呢? 例如0101=5 那麼1011就=-5 01111111=127 那麼10000001就=-127 請問為什麼會這樣呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.167.40.196 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Programming/M.1620734284.A.680.html ※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: lueichun (1.167.40.196 臺灣), 05/11/2021 19:58:53
ucrxzero: 定義 05/11 21:01
wray: 你的相反數是什麼意思?0←→1嗎?你沒發現不盡然嗎?1的補 05/11 22:31
wray: 數才會這樣子。原因有二個:1.可以用加負數的方式來實現減法 05/11 22:32
wray: 2.用not電路很簡單就可以正變負、負變正。而2的補數你自己查 05/11 22:34
LPH66: 數學上的相反數吧 05/11 23:26
NciscalA: 可以看看這個 05/12 02:03
NciscalA: ype=view 05/12 02:03
Lipraxde: A - B = C; A = C + B; C + B - B = C; 要用加法來做 05/12 08:55
Lipraxde: 出除法的效果時 (- B),相當於要找一個數字與 B 相加等 05/12 08:55
Lipraxde: 於 0,也就是補數。「A + 補數 B」有溢位時表示 A > B 05/12 08:55
Lipraxde: ,結果 (C) 為正數,沒溢位時表示 A < B,結果為負數。 05/12 08:55
Lipraxde: 管他取幾個 not 還是相反數,編碼起來相加等於 0 的就 05/12 08:55
Lipraxde: 當他是補數就對了。 05/12 08:55
longlongint: 前面定義有人補了 我補充跟二補數相加會變0的原因 05/15 09:24
longlongint: 只做0 1 交換的話,兩數相加是全1111…,再多加1 05/15 09:25
longlongint: 就會滿出來變回0 05/15 09:26