我想读取浮点数的特定位置,例如x [16:3](第4位至第17位)。 像这样C语言的情况很简单
bits = x & ((2**L - 1) << M);
在Python的情况下,浮点数不允许使用'&'掩码操作。 那如何在Python上做呢?
答案 0 :(得分:1)
我不确定是否能正确理解您的语言,但这将是我的解决方案:
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