我知道 ~ 操作符不操作。但是我无法弄清楚以下程序的输出(-65536)。到底发生了什么?
#include <stdio.h>
int main(void) {
int b = 0xFFFF;
printf("%d",~b);
return 0;
}
最佳答案
假设 32 位整数
int b = 0xFFFF; => b = 0x0000FFFF
~b = 0xFFFF0000
最高位现已设置。假设 2s complement ,这意味着我们有一个负数。反转其他位然后加一得到 0x00010000
或 65536
关于c++ - NOT 对整数值的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17952495/