Hexa十进制字符串格式

时间:2017-02-06 06:32:43

标签: c

是否可以通过以下方式直接将整数转换为十六进制?

Integer Value = 145635

hexa decimal value (4 bytes) = 0x000238E3

<0x00><0x02><0x38><0xE3>

我尝试过使用%x。但这对我没有用。
任何人都可以帮我解决这个问题吗?

1 个答案:

答案 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);