~ 按位取反运算符的功能是什么?

28

这方面的信息在整个互联网上都可以找到。 - Lightness Races in Orbit
4
在这个重复的问题中,没有涉及到二进制补码算术,而这恰恰是这个问题的关键。我怀疑它不是一个完全相同的重复。然而,这个问题恰好涵盖了完全相同的问题。 - buc
3个回答

33

这被称为“二进制补码算法”。您可以在这里查看更详细的信息。

运算符~是一个二进制取反运算符(与布尔取反相反),它会翻转操作数的所有位。其结果是一个使用二进制补码算法表示的负数。


6

2
-2 确实。刚刚检查过了。 - akond
没错。它是按位取反,但有符号数的表示使其显示为例如 -2。但如果你在二进制层面上看,你会发现它完全是一个否定。 - Seyfi

4

~ 反转数字的所有位。在二进制补码中(请谷歌了解),通过反转所有位然后加1可以实现数学上的取反操作。如果只进行第一步(即:只是反转位),你将得到减去1的加法逆元。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接