作者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/cn.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