1、使用 printf()
打印十六进制
使用 printf
打印十六进制数的两种格式(小写和大写)。
#include <stdio.h>
int main() {
int value = 26; // 任意整数值
// 打印小写十六进制
printf("小写十六进制: %x\n", value);
// 打印大写十六进制
printf("大写十六进制: %X\n", value);
return 0;
}
2、补零输出(带前导零)
使用 printf
打印一个 1 字节的值,宽度为 2,并且如果该值不足 2 位,左边会补充 0
。 %02X
是格式控制符。
#include <stdio.h>
int main() {
unsigned char ch = 10; // 任意 1 字节的值
// 输出 1 字节,宽度 2,左边补 0(如:0A)
printf("十六进制: %02X\n", ch);
return 0;
}
3、打印多个字节为十六进制
将data
数组中的每个字节以二位十六进制数的格式打印出来。
#include <stdio.h>
int main() {
unsigned char data[] = {0x01, 0xAB, 0xFF, 0x5C};
int len = sizeof(data)/sizeof(data[0]);
for (int i = 0; i < len; i++) {
printf("%02X ", data[i]);
}
return 0;
}
4、打印 char
字符本身的十六进制值
输出 A
的 ASCII 值为 41
,是其十六进制表示。使用 (unsigned char)c
是为了确保在传递给 printf
时,c
被正确地视为无符号字符,避免任何潜在的类型转换问题。
#include <stdio.h>
int main() {
char c = 'A'; // ASCII: 65 = 0x41
// 打印字符及其十六进制 ASCII 值
printf("Char: %c, Hex: %02X\n", c, (unsigned char)c);
return 0;
}
5、格式控制总结表
格式符 | 说明 | 示例输出 |
---|---|---|
%x | 小写十六进制 | ab |
%X | 大写十六进制 | AB |
%02X | 宽度 2、补 0 的大写十六进制 | 0A |
%#x | 带前缀 0x 的小写十六进制 | 0xab |
%#X | 带前缀 0X 的大写十六进制 | 0XAB |