1
這個問題涉及到我以前的:Node.js的反序列化的不均勻花車偏移
我發送通過藍牙LE數據到服務器的node.js。這裏是序列化數據的格式:
top: 10 bit (unsigned integer)
bottom: 10 bit (unsigned integer)
accelerometerX: 23 bit (truncated 32-bit floating point)
accelerometerY: 23 bit
...
數據作爲node.js緩衝區接收。我能夠解析頂部和底部,因爲它們是整數,我可以對它們使用移位操作。
top = data.readUInt16LE() & 0x3FF;
bottom = data.readUInt16LE(1);
bottom = (bottom >> 2) & 0x3FF;
accX = data.readUInt32LE(2);
accX = ((accX >> 4) & 0x7FFFFFF) << 9;
但是,對於accX是浮動。我無法使用node.js中的ReadFloat32LE,因爲它不是字節對齊的。所以現在我正在讀取uint32,並將它換回9位最不重要的數字。如何從NodeJS中的位表示獲得浮點數?
'23位男士'0x7FFFFF'。你有一個'F'太多了。 – LPs