c - 为什么-~x等于x+1?

标签 c twos-complement

Obfuscated C Code Contest 2006. Please explain sykes2.c ,

有一个语句“-~i == i+1 因为二进制补码”。

有人能解释一下为什么会出现这种情况吗?

最佳答案

-~x 等于 x+1,因为 ~x 等于 (0xffffffff-x)。这等于 2 补码的 (-1-x),因此 -~x-(-1-x) = x+1 >.

关于c - 为什么-~x等于x+1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15512713/

相关文章:

c - 带符号的十六进制字符串到 long int 函数

c++ - 二进制补码函数的问题

python - python中数字的补码

c - 如何将两个寄存器的 2 的补码值读入一个 int

c - #define语句解释

c++ - 表示命令包格式的数据结构

c - select() 中的 nfds 有何用途

binary - 对于有符号数,为什么更喜欢二进制补码而不是符号和数值?

c++ - googletest doc C 字符串和字符串

c - C 问题中的泛型编程