1. 程式人生 > >%02x與%2x 之間的區別

%02x與%2x 之間的區別

輸出最小寬度
用十進位制整數來表示輸出的最少位數。若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0(當最小寬度數值以0開頭時)。

X 表示以十六進位制形式輸出
02 表示不足兩位,前面補0輸出;如果超過兩位,則實際輸出
舉例:
printf("%02X", 0x345);  //打印出:345
printf("%02X", 0x6); //打印出:06

而如果直接寫為 %2x,資料不足兩位時,實際輸出,即不額外補0輸出; 如果超過兩位,則實際輸出。
printf("%2X", 0x345);  //打印出:345
printf("%2X", 0x6); //打印出:6


例子:

#include <stdio.h>


int main()
{
    int i = -20;
 for(i = -20; i < 21; i++)
    {
        printf("%2x\n", i);
        printf("%02x\n", i);    
    }
    return 0;
}

輸出結果:

ffffffec
ffffffec

ffffffed
ffffffed

ffffffee
ffffffee

ffffffef
ffffffef

fffffff0
fffffff0

fffffff1
fffffff1

fffffff2
fffffff2

fffffff3
fffffff3

fffffff4
fffffff4

fffffff5
fffffff5

fffffff6
fffffff6

fffffff7
fffffff7

fffffff8
fffffff8

fffffff9
fffffff9

fffffffa
fffffffa

fffffffb
fffffffb

fffffffc
fffffffc

fffffffd
fffffffd

fffffffe
fffffffe

ffffffff
ffffffff

 0
00

 1
01

 2
02

 3
03

 4
04

 5
05

 6
06

 7
07

 8
08

 9
09

 a
0a

 b
0b

 c
0c

 d
0d

 e
0e

 f
0f

10
10

11
11

12
12

13
13

14
14