为什么 int 上的 ~x 会导致 -(x+1)
Why does ~x on an int result in -(x+1)
为什么这个代码:
#include <iostream>
int main ()
{
int x = 1;
int y = ~x;
std::cout << y;
}
总是打印-(x+1)?如果 x = 00000001,y = 11111110 不应该吗?
那是因为您使用的是 two's complement 系统。 C++ 不保证这一点,但所有(需要引用?)现代架构都有这个 属性.
为什么这个代码:
#include <iostream>
int main ()
{
int x = 1;
int y = ~x;
std::cout << y;
}
总是打印-(x+1)?如果 x = 00000001,y = 11111110 不应该吗?
那是因为您使用的是 two's complement 系统。 C++ 不保证这一点,但所有(需要引用?)现代架构都有这个 属性.