gpt4 book ai didi

c - 如何证明 C 语句 -x、~x+1 和 ~(x-1) 产生相同的结果?

转载 作者:太空狗 更新时间:2023-10-29 15:10:04 26 4
gpt4 key购买 nike

我想知道这句话背后的逻辑,证明。 C 表达式 -x、~x+1 和 ~(x-1) 对于任何 x 都产生相同的结果。我可以证明对于特定示例这是正确的。我认为证明这一点的方法与二进制补码的性质有关。有任何想法吗?

最佳答案

考虑一下将一个数字与其按位补码相加会得到什么。 n 位整数 x 的按位补码在 x 为 0 的任何地方都为 1,反之亦然。所以很明显可以看到:

x + ~x = 0b11...11(n 位全 1 的值)

与 x 中的位数无关。此外,请注意,将一个全为 1 的 n 位数字加 1 将使它回绕到零。由此我们看到:

x + ~x + 1 = 0b11...11 + 1 = 0和 ~x + 1 = -x。

同样,注意 (x - 1) + ~(x - 1) = 0b11...11。然后 (x - 1) + ~(x - 1) + 1 = 0,并且 ~(x - 1) = -x。

关于c - 如何证明 C 语句 -x、~x+1 和 ~(x-1) 产生相同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2278518/

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