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