2013-07-05 182 views
1

我想从文件中读取二进制数据。在字节10-13是一个litte-endian二进制编码的数字,我试图解析它只使用偏移量为10,“大小”为4的信息。如何处理多字节数字?

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

+0

如果你使用的是big-endian机器,那么你只需要进行字节转换,否则就可以使用。 –

回答

2

如果你知道某些数据是小端,你可以这样做:

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

这给你的情况下,一个便携的解决方案您的代码将在两个端机器上运行。

+0

是的,它的作用与此同时。如上所述,我不确定在哪里转移以及转移多远 –