1
我想從文件中讀取二進制數據。在字節10-13是一個litte-endian二進制編碼的數字,我試圖解析它只使用偏移量爲10,「大小」爲4的信息。如何處理多字節數字?
我已經想通了I將不得不做一些二進制移位操作,但我不確定哪個字節在哪裏,如何「遠」以及它應該在哪裏移位。
我想從文件中讀取二進制數據。在字節10-13是一個litte-endian二進制編碼的數字,我試圖解析它只使用偏移量爲10,「大小」爲4的信息。如何處理多字節數字?
我已經想通了I將不得不做一些二進制移位操作,但我不確定哪個字節在哪裏,如何「遠」以及它應該在哪裏移位。
如果你知道某些數據是小端,你可以這樣做:
int32 value = data[10] | (data[11] << 8) | (data[12] << 16) | (data[13] << 24);
這給你的情況下,一個便攜的解決方案您的代碼將在兩個端機器上運行。
是的,它的作用與此同時。如上所述,我不確定在哪裏轉移以及轉移多遠 –
如果你使用的是big-endian機器,那麼你只需要進行字節轉換,否則就可以使用。 –