gpt4 book ai didi

binary - 解释为什么 x == ~(~x + 1) + 1 (二进制补码和返回!)

转载 作者:行者123 更新时间:2023-12-01 00:47:11 26 4
gpt4 key购买 nike

众所周知,内存中的负数通常表示为二进制补码

from x to ~x + 1

为了回来,我们不会做明显的事情,比如
~([~x + 1] - 1)

但我们这样做
~[~x + 1] + 1

有人可以解释为什么它总是有效吗?我想我可以用 1 位、2 位、3 位数字来证明它,然后使用数学归纳法,但这并不能帮助我理解它究竟是如何工作的。

谢谢!

最佳答案

反正都是一样的。即,~x + 1 == ~(x - 1) .但让我们暂时把它放在一边。
f(x) = ~x + 1是它自己的逆。证明:

~(~x + 1) + 1 =
(definition of subtraction: a - b = ~(~a + b))
x - 1 + 1 =
(you know this step)
x

另外, ~x + 1 == ~(x - 1) .为什么?好,
~(x - 1) =
(definition of subtraction: a - b = ~(~a + b))
~(~(~x + 1)) =
(remove double negation)
~x + 1

还有那个(有点不寻常的)减法定义, a - b = ~(~a + b) ?
~(~a + b) =
(use definition of two's complement, ~x = -x - 1)
-(~a + b) - 1 =
(move the 1)
-(~a + b + 1) =
(use definition of two's complement, ~x = -x - 1)
-(-a + b) =
(you know this step)
a - b

关于binary - 解释为什么 x == ~(~x + 1) + 1 (二进制补码和返回!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33566989/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com