原谅我是否曾经问过这个问题,但是我向您保证,我已经搜索了互联网并且没有发现任何内容,这可能是因为我没有正确的术语。
我想取一个整数并将其转换为little-endian(?)十六进制表示形式,如下所示:
303-> 0x2f010000
我可以看到字节被打包,以便16和1的位置都在同一字节中,而4096和256的位置共享一个字节。如果有人可以为我指出用于此类编码的正确术语,那么我相信我可以找到有关如何进行编码的答案。谢谢!
最佳答案
将位移运算符与按位AND和OR运算符结合使用...
假设32位无符号:
int value = 303;
int result = 0x00000000;
for (int i = 0; i < 4; i++)
{
result = result | ((value & (0xFF << (i * 8))) << (24 - (i * 8)));
}