將argument以整型的方式打印到輸出流時,可以有以下幾種方式:有符號十進制、無符號十進制、無符號八進制和無符號十六進制。
1有符號十進制
可以將type設置爲i或者d來將整型以有符號十進制的方式打印到輸入流中。
int a = -10;
printf("%d\n", a);
printf("%i\n", a);
其中,%i是老式寫法,而%d是新式寫法,兩者的作用相同。
2 無符號十進制
可以將type設置爲u來將整型以無符號十進制的方式打印到輸入流中。
int a = 10;
printf("%u\n", a);
3 無符號八進制
可以將type設置爲o來將整型以無符號八進制的方式打印到輸入流中。
printf("%o\n", a);
此時的輸出爲“12”,即10的八進制格式。
4 無符號十六進制
可以將type設置爲x或者X來將整型以無符號十六進制的方式打印到輸入流中。當是%x時,使用小寫字母abcdef;當是%X時,使用大寫字母ABCDEF。
int a = 10;
printf("%x\n", a);
printf("%X\n", a);
此時,輸出的是“a”和“A”。
5 type與argument類型不符
當type指定的是無符號,而argument是有符號的整型時,例如
int a = -10;
printf("%u\n", a);
此時會把a當做無符號的值來處理。a的值是-10,其對應的二進制(10的補碼加1)是1111 1111 1111 1111 1111 1111 1111 0110,將其看做無符號的數,其值爲4294967286。