【发布时间】:2013-07-30 22:08:52
【问题描述】:
我知道 ~ 运算符不操作。但我无法弄清楚以下程序的输出(即-65536)。到底发生了什么?
#include <stdio.h>
int main(void) {
int b = 0xFFFF;
printf("%d",~b);
return 0;
}
【问题讨论】:
-
所以你已经知道它做了什么你的问题比
-
@suspectus 请不要将 C 标签添加到带有 C++ 标签的问题中,反之亦然。这些是不同的语言。如果您认为某个问题是 C 而不是 C++,并且被错误地标记为 C++,则应在添加 C 标记时删除 C++ 标记。
-
@aaronman 如果它不是 'b' .. 那么输出应该是 0 但为什么 -65536
-
你的整数是有符号整数而不是无符号整数
-
我认为您假设
operator~是一个逻辑NOT操作。它实际上是一个 binaryNOT操作。大不同。
标签: c++ bit-manipulation tilde