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。

posted @ 2017-01-18 18:39  GuangriChien  阅读(663)  评论(0)    收藏  举报