作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道 ~ 操作符不操作。但是我无法弄清楚以下程序的输出(-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/
我是一名优秀的程序员,十分优秀!