Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

6年前关闭。



Improve this question




我最近遇到了以下代码:
unsigned short int a = 0xffff;
~a;
printf("%x", a);

其输出为:
0xffff

据我了解,~a应该翻转给定以下内容的所有位:
0x0000

那么,为什么输出0xffff呢?

最佳答案

您忘记了将结果分配回a。就像

int a = 3;
a + 2;
printf ("%d\n", a);

将打印3而不是5。

09-26 01:17