This question already has answers here:
Closed 4 years ago.
bit-wise operation unary ~ (invert)
(5个答案)
int x=10;
cout<<~x;

这个代码打印-11。如果是简单的反转,那么对于00001010,位应该是11110101,在转换为十进制时是-117。我试过找,但没找到,请告诉我这里发生了什么?
如果有帮助的话,我正在使用mingw编译器。

最佳答案

这正如期发挥作用。”11110101“是-11的补码。
顺便说一下,“int”要么是16位,要么是32位
分别为“00000000001010”或“00000000000000000000001010”。

关于c++ - 不了解按位一元反演'〜'运算符的工作原理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29354450/

10-09 03:15