0

对于使用 Squirrel 语言的嵌入式系统,我需要将 32 位浮点数转换为 4 字节。我希望我可以移位并将字节屏蔽为单独的部分,执行以下操作:

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

但是,这给了我一个类型错误,说你不能在浮点数上移位。

我在文档中看到的唯一另一件事是tointeger函数,因此我可以转换为整数,然后获取非小数部分,但即便如此,我也需要稍后从字节转换为浮点数。

有任何想法吗?

4

1 回答 1

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'));
于 2013-10-02T13:48:25.400 回答