推 acespeed:好~我會試試看!謝謝你 08/09 10:25
※ 引述《acespeed (xXx)》之銘言:
: 請問一下各位版友
: 最近在做收data的程式
: 而收到的data都是用byte存起來
: 可是如果我拿來用都會有單位轉換的問題
: 如我宣告
: int a ;
: 去收收到的data
: a = dataa<<8 + datab;
: 這樣收到的結果都是錯的
: 而我處理64bits的時候問題更大
: 請問大家有推薦的書或網站在講怎麼處理這個的嗎
: 以前寫c都直接轉來轉去都不會有問題
: 不太清楚這部分應該怎麼處理
: 謝謝
ByteBuffer buffer = ByteBuffer.wrap(data);
int a = buffer.getInt();
short b = buffer.getShort();
不過不確定你的data是big endian還是little endian
如果上面結果還是錯的
可以試試
buffer.order(ByteOrder.LITTLE_ENDIAN);
再去讀去你的data
另外如果你是讀取的是一個stream
建議改用DataInputStream
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.137.88.149