C语言的一些输出格式
C语言的一些基本输出格式:

几个进制:二进制,8进制,16进制,10进制。
不管是8进制,还是10进制,以及16进制,在计算机内存中都是以二进制形式存储。
10进制是用来表示数据大小的,有正负,有符号的。16进制和8进制不是用来表示数据大小的,而是显示内存内容的,所以是无符号的。16进制目的是展示一个变量内存中的形式,当然内存中是2进制,但16进制作为2的4次方,更容易看懂。-1内存形式为 32个1,看-1还真看不出来,但16进制的表现形式是8个F,那就一目了然,其他所有数字都是如此。16进制和8进制让你很轻松分辨每个bit位是0还是1,他的实际内存形式是什么,如果这也有符号,他这种意义完全没了,直接用10进制算了。
所以我们在输出的时候,为什么没有表示无符号的8进制或16进制的输出格式,因为8进制16进制本身所表示的是内存内容,并不是数据大小,所以无需符号。
如下:
以8进制,10进制,16进制分别输出无符号的int,long int,short int
8进制: %o %lo %ho
10进制: %u %lu %hu
16进制: %x %lx %hx
另:16进制的输出格式%#x和%#X,#表示输出成0x**和0X**的格式,不同的是小写x输出的是小写字母,大写X输出的是大写字母。
如:
int a=47;
用%#x格式输出就是0x2f,而用%#X就是0X2F。

浙公网安备 33010602011771号