本文介绍了%x和意义〜的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
int m=32
printf("%x" , ~m);
这句话的输出是 ffdf
并没有〜
输出 20
。
什么是%X
和〜
?
推荐答案
的〜
操作符是按位否定。它会打印按位 M
的价值的否定。 %X
表示的printf
将在十六进制格式输出其价值。
The ~
operator is bitwise negation. It will print bitwise negation of m
's value. %x
means that printf
will output its value in hexadecimal format.
所以,值 0xffdf
是价值 0x20的
的否定(32)。
So, value 0xffdf
is the negation of value 0x20
(32).
值32(INT位会):
Value 32 (int bits would be):
0000 0000 0010 0000
其位求反将是:
1111 1111 1101 1111
这是有道理的,因为:
Which makes sense since:
1111 1111 = 0xff
和
1101 1111 = 0xdf
这篇关于%x和意义〜的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!