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



问题是如何从没有"0"的整数中获取字节数?我的意思是当我想:

printf("%x", 67305985);

输出为:04030201。 是否有机会在输出中获得 4321(不带"0"(? 我尝试将整数转换为无符号字符数组,但存在同样的问题。

谢谢你的时间。

一种方法是结合使用位移和位掩码。

如果&32 位整数与 32 位整数0x000000FFu则结果是一个整数,其中仅设置了 A: 已设置的位和位于数字最后 8 位的 B: 位。若要选择整数的其他部分,可以按 8 的倍数进行位移。即(x >> 8) &0x000000FFuto select the second byte from the right,(x>> 16( &0x000000FFu选择第三个。

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

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

最新更新