"%02x",是以0补齐2位数,如果超过2位就显示实际的数;
"%hhx" 是只输出2位数,即便超了,也只显示低两位;
因此有了"%02hhx"
例如:
printf("%02X|\n",8); 08
printf("%02X|\n",128); 80
printf("%hhX|\n",(char)8); 8
printf("%hhX|\n",(char)128); 80
printf("%02hhX|\n",(char)8); 08
printf("%02hhX|\n",(char)128); 80
printf("%02hhX|\n",1023); 01FF
printf("%02hhX|\n",1023); FF
printf("%02X|\n",128); 80
printf("%hhX|\n",(char)8); 8
printf("%hhX|\n",(char)128); 80
printf("%02hhX|\n",(char)8); 08
printf("%02hhX|\n",(char)128); 80
printf("%02hhX|\n",1023); 01FF
printf("%02hhX|\n",1023); FF

本文探讨了C语言中printf函数使用`%02x`和`%hhx`进行十六进制格式化输出时的区别,并通过实例解释了`%02hhx`的用法。通过示例代码,展示了不同参数对输出的影响,如数值大小、补零和高位截断等。
1137

被折叠的 条评论
为什么被折叠?



