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