我需要使用Squirrel语言将32位浮点数转换为4字节的嵌入式系统。我希望我可以稍微移位并将字节屏蔽成单独的部分,做类似的事情:
bytes = [
(myfloat >> 24) & 0xff,
(myfloat >> 16) & 0xff,
(myfloat >> 8) & 0xff,
(myfloat ) & 0xff,
]
然而,这给了我一个类型错误,说你不能在浮点上移位。
我在文档中看到的唯一另一件事是tointeger
函数,所以我可以转换为整数然后获取非十进制部分,但即便如此,我还需要从字节转到另一个方向稍后浮动。
有什么想法吗?
答案 0 :(得分: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'));