2015-07-20 118 views
-1

我遇到了這個代碼:這是什麼字符串格式?

unsigned char c = 0xA3; 
printf("%2.2X\n",c); 

但我不知道是什麼的2.2的目的是什麼。當我比較這兩個語句:

printf("%2.2X\n",c); 
printf("%X\n",c); 

我得到同樣的輸出,如:

A3

2.2代表什麼? 謝謝。

+2

[RTFM](http://pubs.opengroup.org/onlinepubs/009695399/functions/fprintf.html) –

+3

我在投票結束這個問題,因爲它是由R的普通答覆, FM。 –

+0

您是否嘗試過使用其他值?例如'unsigned int'值更少,更多的文本數字。請注意,您傳遞的'unsigned char'會被提升爲'unsigned int'。實驗。 –

回答

3
printf("%A.BX\n", c); 

A是輸出必須具有的最小字符數量。如果小於這個值,那麼它會用剩餘空格填充剩餘的空格。示例:printf("%3.1X\n", 6); -> " 6"

B是輸出必須具有的最小位數。如果小於這個數字,它會用剩下的零填充到左邊。例如:printf("%4.2X\n", 6); -> " 06"

X表示輸出將以十六進制表示,其中的字母爲大寫。示例:printf("%7.5X\n", 232) -> " 000E8"

相關問題