2011-10-28 87 views
7

我需要讀取16位的字節數組作爲無符號短數字,並且Java不支持無符號短整型。
那麼我該怎麼做?請幫忙!!將字節[]讀取爲unsigned short Java

+0

16位的字節數組?所以它是一個長度爲2的數組? –

+0

我認爲你的意思是轉換,而不是閱讀,對嗎?那麼,將兩個字節轉換爲一個整數值?訣竅是你需要將它存儲爲一個'int',而不是'short'。 – 101100

+0

'char'數據類型本質上是一個無符號的'short'。但最常用的技術是使用「int」。 – corsiKa

回答

9

假設你有它可從非Java源代碼的二進制數據,你必須閱讀並Java中的值工作: 它讀成一(簽字)short,然後將其轉換爲int如下:

int intVal = shortVal >= 0 ? shortVal : 0x10000 + shortVal 

不能代表在很短的unsigned short類型的所有值,但在一個int,你可以。