我需要将float值转换为二进制。此值可以在0到99.99之间。

我看到如果值是int并且在0到255之间,我只需要

n = [255]
num = byte(n)

如何将浮点数直接转换为二进制是不可能的(我认为),第一步是将浮点数*100乘以一个0到9999之间的整数。

现在我需要4个字节来表示数字。

可能会出现类似arduino的代码(如下)?
n = 9999
byte = pl[4];

pl[0] = (byte) ((n & 0xFF000000) >> 24 );
pl[1] = (byte) ((n & 0x00FF0000) >> 16 );
pl[2] = (byte) ((n & 0x0000FF00) >> 8 );
pl[3] = (byte) ((n & 0X000000FF));

基本上,我正在应用遮罩,但是我不知道如何使用python来做,因为我是菜鸟。 :/

更多信息:

目的是减少我的结果的长度,以便通过无线协议发送该结果。这就是为什么我将其转换为byte的原因。

非常感谢你

最佳答案

一个等效的是

x=2049
p0 = (x>>24)&255
p1 = (x>>16)&255
p2 = (x>>8)&255
p3 = x&255

10-07 18:58
查看更多