%02x与%2x之间的区别

表示以16进制的格式输出整数类型的数值,输出域宽为2,右对齐,不足的用字符0替代。
输出最小宽度
用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。

X 表示以十六进制形式输出
02表示不足两位,前面补0输出;如果超过两位,则实际输出
举例:

printf(“%02X”, 0x345); //打印出:345
printf(“%02X”, 0x6); //打印出:06

而如果直接写为 %2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。

printf(“%2X”, 0x345); //打印出:345
printf(“%2X”, 0x6); //打印出:6