以下表格中,重点记住第一、二行十进制的输出格式,二十年来,八进制数我从来没有用过,十六进制数只在显示内存的地址时见过,所以大家不必关心八进制和十六进制的相关知识,了解即可。
%hd、%d、%ld |
以十进制、有符号的形式输出short、int、long 类型的整数。 |
%hu、%u、%lu |
以十进制、无符号的形式输出short、int、long 类型的整数。 |
%ho、%o、%lo |
以八进制、不带前缀、无符号的形式输出 short、int、long 类型的整数 |
%#ho、%#o、%#lo |
以八进制、带前缀、无符号的形式输出 short、int、long 类型的整数 |
%hx、%x、%lx |
以十六进制、不带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字也小写;如果 X 大写,那么输出的十六进制数字也大写。 |
%#hx、%#x、%#lx |
以十六进制、带前缀、无符号的形式输出 short、int、long 类型的整数。如果 x 小写,那么输出的十六进制数字和前缀都小写;如果 X 大写,那么输出的十六进制数字和前缀都大写。 |
如果输出需要带前缀,那就在%后面加上#,输出时会显示前缀。
1000,1000,1000
1000,1000,1000
1750,1750,1750
01750,01750,01750
3e8,3e8,3e8
0x3e8,0x3e8,3e8
#include <stdio.h>
int main()
{
int a=1000;
printf("%hd,%d,%ld\n",a,a,a);
printf("%hu,%u,%lu\n",a,a,a);
printf("%ho,%o,%lo\n",a,a,a);
printf("%#ho,%#o,%#lo\n",a,a,a);
printf("%hx,%x,%lx\n",a,a,a);
printf("%#hx,%#x,%lx\n&