为什么 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++ 不保证这一点,但所有(需要引用?)现代架构都有这个 属性.