是否可以通过以下方式直接将整数转换为十六进制?
Integer Value = 145635
hexa decimal value (4 bytes) = 0x000238E3
<0x00><0x02><0x38><0xE3>
我尝试过使用%x。但这对我没有用。
任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
您可以使用<..>
围绕每个字节至少使用一个printf
语句来实现输出,如下所示。请注意,数据类型是无符号的,最好与十六进制和位移运算符结合使用:
unsigned int val = 145635;
// "ordinary" printf
printf("%08X\n", val);
// printf per byte:
printf("<%02X><%02X><%02X><%02X>\n",
val >> 24,
(val&0x00ff0000) >> 16,
(val&0x0000ff00) >> 8,
val&0x000000ff);