2014-09-01 101 views
0

我成爲一個16位工具藍牙數字,我需要將其轉換爲字符串。我可以通過這種方式獲得255以下的數字:字節數組大於255

byte[] readBuf = (byte[]) msg.obj; 
String strIncom = new String(readBuf);        
char c = strIncom.charAt(0); 

由於「字節」是8位,所以一定會收到255。我試圖取代短字節,但我得到這個錯誤:

byte[] cannot be cast to short[] 
+0

你需要通過轉換te []縮短[]? – nogard 2014-09-01 08:38:57

+0

我想得到的數字大於255,但不知道該怎麼辦@nogard – davix10 2014-09-01 08:41:55

+0

@ davix10:不是你的演員問題的答案(你沒有真正顯示足夠的代碼),但你知道一個「字節」在Java中籤名,所以它只能表示+/- 127?或者你是直接使用位掩碼還是位操作符來操作? – Squonk 2014-09-01 08:47:45

回答

0

嘗試:

ByteBuffer input=ByteBuffer.wrap((byte[])msg.obj); 
    short my16bitValue=input.getShort(); 

閱讀有關字節順序

我不知道,這是否是你想要什麼做...

(你可以從一個字符串,使用Short.toString(my16bitValue)...)