int m=32
printf("%x" , ~m);
该语句的输出为
ffdf
,不包含~
的输出为20
。%x
和~
的意义是什么? 最佳答案
~
运算符是按位取反。它将打印m
的值的按位取反。 %x
表示printf
将以十六进制格式输出其值。
因此,值0xffdf
是值0x20
的否定(32)。
值32(int位为):
0000 0000 0010 0000
其按位取反将是:
1111 1111 1101 1111
这是有道理的,因为:
1111 1111 = 0xff
和:
1101 1111 = 0xdf
关于c - %x和〜的意义,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8900558/