如何处理多字节数字?

时间:2013-07-05 11:17:46

标签: c endianness

我正在尝试从文件中读取二进制数据。字节10-13是一个litte-endian二进制编码的数字,我试图仅使用偏移量为10且“size”为4的信息来解析它。

我已经想到我将不得不做一些二进制移位操作,但我不确定哪个字节在哪里以及如何“远”以及它应该移位的位置。

1 个答案:

答案 0 :(得分:2)

如果您确定数据是小端,您可以执行以下操作:

int32 value = data[10] | (data[11] << 8) | (data[12] << 16) | (data[13] << 24);

这为您提供了一个便携式解决方案,以防您的代码在两台端机上运行。