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 |