2013-10-02 38 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

相关问题