为什么~x上的int结果为 - (x + 1)

时间:2016-10-06 19:20:28

标签: c++ tilde

为什么这段代码:

#include <iostream>
int main ()
{
  int x = 1;
  int y = ~x;
  std::cout << y;
}

始终打印 - (x + 1)?如果x = 00000001,则shoudn&#t; t y = 11111110?

1 个答案:

答案 0 :(得分:2)

那是因为您使用的是two's complement系统。 C ++并不能保证这一点,但所有(需要引用?)现代架构都有这种特性。