如何在C中获取整数字节?

How to get bytes of integer in C?

问题是如何从不带“0”的整数中获取字节数?我的意思是当我想:

printf("%x", 67305985);

输出为:04030201。 有没有机会在输出中得到 4321(没有“0”)? 我尝试将整数转换为无符号字符数组,但出现了同样的问题。

谢谢你的时间。

实现此目的的一种方法是结合使用位移位和位掩码。

如果你 & 一个 32 位整数对 32 位整数 0x000000FFu 结果是一个整数,其中只有 A:已经设置的位和 B:位于最后一个设置了 8 位数字。对于 select 整数的其他部分,您可以按 8 的倍数进行位移。 (x >> 8) &0x000000FFuto select the second byte from the right,(x >> 16) & 0x000000FFu 到 select 第三个。

然后您可以将这些中的每一个打印为十进制格式的常规无符号整数。

我不确定此方法的性能与将无符号整数指针转换为无符号字符指针并以这种方式执行相比如何。