02x与%2x 之间的区别 - CSDN博客

输出最小宽度 用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或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

Từ khóa » C 0x 02x