伊莉討論區

標題: 陣列取值位移 [打印本頁]

作者: qequalqy    時間: 2016-7-16 04:53 AM     標題: 陣列取值位移

把兩個數字丟入這個公式裡面
(bytes[offset + 1] << 8) + (bytes[offset] & 0xFF);

bytes[offset + 1]=0
bytes[offset]= 98
輸出為98

bytes[offset + 1]=1
bytes[offset]= 116
輸出為372

bytes[offset + 1]=0
bytes[offset]= -45
輸出為211

bytes[offset + 1]=-2
bytes[offset]= -17
輸出為-273

請問大大們這個要怎麼運算阿....只看得懂第一題....


作者: 22616846    時間: 2016-7-16 09:09 AM

本帖最後由 22616846 於 2016-7-17 09:29 AM 編輯

如果把 bytes[offset + 1] 看成變數a
bytes[offset] 看成變數b

(a << 8)
等同於  
(int)(a*Math.pow(2 , 8));

(b & 0xFF)
等同於
if(b < 0)  b = b  % 256 + 256;
else if (b < 256) b =  b;
else b =  b  % 256;
作者: qequalqy    時間: 2016-7-17 02:52 AM

那....
bytes[offset + 1]=1
bytes[offset]= 116
輸出為372

bytes[offset + 1]=1
bytes[offset]= 13
輸出為269

那是為什麼?

作者: 22616846    時間: 2016-7-17 09:31 AM

抱歉,我打錯了,應該是Math.pow(2 , 8),而不是Math.pow(a , 8)
作者: qequalqy    時間: 2016-7-17 08:10 PM

在請問一件事
我從儀器上抓到一段資料
sensorData : [B@3eda0435
sensorData[0~18]  : {11, 7, 0, -3, -1, 14, 1, 82, 0, -99, -1, -125, -1, 125, -1, -57, -7, 33, 13}
應該是sensorData轉換成sensorData[0~18]嗎??他們是如何分解出來的? 可以大概講一下嗎?  謝謝ˋ
作者: 22616846    時間: 2016-7-17 10:53 PM

這個我就不清楚了,請問這個是java語法嗎,因為我對別的程式語言不是那們熟悉
作者: snowflying    時間: 2016-7-17 10:59 PM

本帖最後由 snowflying 於 2016-7-18 12:59 AM 編輯
qequalqy 發表於 2016-7-17 08:10 PM
在請問一件事
我從儀器上抓到一段資料
sensorData : [B@3eda0435

sensorData : [B@3eda0435

這個是不是直接印出 sensorData?
在沒有 override String toString() 的情況下
印出來的只能當作他的識別符而已喔,與內容並沒有直接的關係

可以看一下 Object 內的 toString()
https://docs.oracle.com/javase/7/docs/api/java/lang/Object.html#toString()






歡迎光臨 伊莉討論區 (http://aaa.eyny.com/) Powered by Discuz!