2016-05-17 73 views
1

我有一個字節數組應該被視爲2個字節的無符號數據。 所以下面的代碼表示257.我試圖將其存儲爲簡短的,但我得到一個錯誤:作業的左側必須是一個變量。有沒有什麼聰明的方法來做到這一點?請幫忙。Java字節移位

byte[] unsigned2ByteNum = new byte[2]; 
    unsigned2ByteNum[0] = 1; 
    unsigned2ByteNum[1] = 1; 

    short port = 0; 
    (byte)(port >> 8) = portNum[0]; 
    (byte)(port) = portNum[1]; 
+1

你必須改變作業的右側,而不是左側。 – Kayaman

回答

3

你明白了這一點。您無法爲表達式分配值,只能將值分配給變量。

short port = (short) ((portNum[0] << 8) | (0xff & portNum[1])); 

這是假定portNum[0]是高位字節。

編輯:更正了將負低字節視爲無符號的轉換(以便例如將{1,-1}轉換爲511而不是-1)。