我试图取0的补数得到1,但得到4294967295。这是我所做的:
unsigned int x = 0;
unsigned int y= ~x;
cout << y;
我的输出是4294967295,但我期望1,为什么会这样?顺便说一句,我正在C++中执行此操作。
最佳答案
你为什么期望1?按位补码会翻转所有位。
00000000000000000000000000000000 = 0
|
bitwise NOT
|
v
11111111111111111111111111111111 = 4294967295
也许您正在考虑logical NOT。在C++中,它写为
!x
。