如果我使用m
而不是~m
然后代码给出了预期的十六进制值 32,但这里给出了 ffffffdf
作为输出。
编辑
我知道如何按位 ~
NOT 运算符有效。但我不明白这一点。有人可以解释一下吗......?
#include<stdio.h>
int main()
{
unsigned int m = 32;
printf("%x\n", ~m); //ffffffdf is printed as output
return 0;
}
最佳答案
每个十六进制数字都是四位。由于您有 8 个十六进制数字,因此您的整数似乎是 8*4=32 位。
32 = 0000000000000000000000000000010000
的 NOT 类似于 11111111111111111111111111101111
,即上面的十六进制数字。
关于c - 使用十六进制格式说明符打印按位 NOT 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31145010/