我有一個字節數組,其中的值存儲爲16位無符號整數。這是分佈在我的字節數組中的兩個位置,即DataArray[11]
和DataArray[12]
。我對包含字節數組的數據包的文檔告訴我,我需要提取的值最先打包最低有效位。我遇到了困難,我的頭繞着位掩碼和位移,而且我實際上不清楚是否需要使用其中一個或另一個。將2個8位字節陣列位置合併爲一個16位整數
這是我到目前爲止,但結果似乎並不正確:
int result = (DataArray[11] << 8 | DataArray[12]) & 0xFF;
「結果似乎不正確」並沒有告訴我們任何有用的東西。請給出一個樣本輸入和輸出的例子... –
如果DataArray類型是字節,你可能會遇到向左移動8位的麻煩!!!在轉換之前將數組項目轉換爲無符號短整型。 – alexbuisson
@alexbuisson:無論如何,字節都沒有移位運算符 - 它會自動提升爲「int」......並且在Java中沒有「unsigned short」類型。 –