2013-10-02 64 views
0

我需要爲使用Squirrel語言的嵌入式系統將32位浮點數轉換爲4個字節。我希望我可以字節位移位掩碼成獨立的部分,做這樣的事情:如何將浮點數轉換爲松鼠中的4個原始字節?

bytes = [ 
    (myfloat >> 24) & 0xff, 
    (myfloat >> 16) & 0xff, 
    (myfloat >> 8) & 0xff, 
    (myfloat  ) & 0xff, 
] 

然而,這給了我一個類型錯誤,說你不能一下就一個浮動移。

我在文檔中看到的唯一的其他事情是tointeger函數,所以我可以強制轉換爲一個整數,然後獲得非十進制部分,但即便如此,我還需要從字節轉換爲另一種方式。

任何想法?

回答

0

啊哈,你必須閱讀和浮點值寫入BLOB:

local pi = 3.1415926; 
bl <- blob(4); 
bl.writen(pi, 'f'); 
bytes <- []; 
foreach (byte in bl) { 
    server.log(byte); 
    bytes.append(byte); 
} 
back <- blob(4); 
foreach (byte in bytes) { 
    back.writen(byte, 'b'); 
} 
back.seek(0, 'b'); 
server.log(back.readn('f')); 
+0

你想在幾個字節寫浮動的整數值,或者是你想存儲的二進制編碼float(作爲一個浮點數)在一系列字節中?這個問題看起來像前者(減去演員),你的答案看起來像後者。 –

+0

後者就是我拍的。 – davidscolgan

相關問題