Kev*_*rds 1 c c++ bit-manipulation
我最近遇到了以下代码:
unsigned short int a = 0xffff;
~a;
printf("%x", a);
Run Code Online (Sandbox Code Playgroud)
它的输出是:
0xffff
Run Code Online (Sandbox Code Playgroud)
根据我所学到的,~a应该翻转给出以下内容的所有内容:
0x0000
Run Code Online (Sandbox Code Playgroud)
那么,为什么输出0xffff呢?
你忘了将结果分配回来.就像
int a = 3;
a + 2;
printf ("%d\n", a);
Run Code Online (Sandbox Code Playgroud)
将打印3而不是5.