看板 Soft_Job 關於我們 聯絡資訊
※ 引述《azureshin (azureshin)》之銘言: : 是這樣....我們買了一個亮度偵測儀器,是透過藍牙接收的. : 得到的是16進制8e000000 a b c d : 我問對方這要怎麼轉換成流明 ? 對方是這樣回的.. : 『需要将第二个字节的数据先左移8位再加上第一个字节的数据,再乘以 64000/65536』 : 『二进制的左移』 : 『现在是两个8位的数据,要变成一个16位的数据』 : 『第二个字节是高位』 : ..........就這樣,四句話打完他就不回我了... : 我知道進制轉換,但我就是看不懂他們在說什麼,有誰懂得?? 觀察: 1. 明明這是個4 Byte 數據,第一句話卻只對其中2 Byte做移位 2. 第三句話有提到是把兩個8bit合成 3. 這是LSB還是MSB排列,第一第二是從右邊數還左邊數? 解說: 1. 第一句跟第四句意義重疊,但不知道資料順序所以沒意義 2. 第二句完全是贅字,在第一句就講過了 3. 第一句後面*64000/65536有用,前面說的跟第三句意義重疊 4. 總之公式是 ((int32)High Byte<<8+Low Byte)*64000/65536 5. 總之這"8e"幾乎肯定是Low Byte或High Byte 但到底'b','c','d'哪個是另外的Byte不明 預測: 1. 先假定第三句話是對的,那數據中應該有2Byte無意義 2. 這是單純的資料串接再等比縮放,所以從原始數據就可以看到結果 確認: 1. 設計一個光源可控的環境,持續取得偵測值 若得到的值有兩個Byte恆為零,則證明假說1為真 2. 承1, 在過程中也能得知這是MSB還是LSB 3. 承1,2 高低位都知道了,就合併成16bit數據即可 4. 若預測1證實為假,4個Byte都有變動那就必須取得進一步資訊 對方工程師理解錯誤"字節=1Byte=8bit"的機率太低 第一三句以及公式都顯示這是一個16bit的分數分子 必須考慮資料取得有誤 -- 連連看:狼與辛香料(小梅漫畫版) 限制級 秋色天空 普遍級 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.167.211.27 ※ 文章網址: http://www.ptt.cc/bbs/Soft_Job/M.1415098787.A.F77.html