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/

10-12 19:40