我想读取浮点数的特定位置,例如x [16:3](第4位至第17位)。这样C语言的情况很简单
bits = x & ((2**L - 1) << M);
对于Python,浮点数不允许使用'&'掩码操作。那么如何在Python上做呢?
我不确定,如果我对您的理解正确,但这将是我的解决方案:
import struct
def float_to_bin(num):
return format(struct.unpack('!I', struct.pack('!f', num))[0], '032b')
x=16.4637159674589415472835945
string=str(x)
bitx=float_to_bin(x)
part_of_string=string[4:17]
part_of_bitx=bitx[4:17]
我从其他地方(可能是Stackoverflow的某个地方)复制了一次float_to_bin函数,以使float成为二进制数。该函数已经使二进制数成为字符串,因此您就可以使用通常的索引了。如果要读取浮点数的特定位置,可以将该数字设为字符串,然后使用索引。
希望我能正确回答你的问题。最好,lepakk
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句