【发布时间】:2019-10-05 03:57:04
【问题描述】:
我想读取浮点数的特定位置,例如 x[16:3](第 4 位到第 17 位)。 C语言的案例就这么简单
bits = x & ((2**L - 1) << M);
Python 的情况下,浮点数不允许掩码操作的 '&'。 那么如何在 Python 上实现呢?
【问题讨论】:
标签: python-3.x numpy
我想读取浮点数的特定位置,例如 x[16:3](第 4 位到第 17 位)。 C语言的案例就这么简单
bits = x & ((2**L - 1) << M);
Python 的情况下,浮点数不允许掩码操作的 '&'。 那么如何在 Python 上实现呢?
【问题讨论】:
标签: python-3.x numpy
我不确定,如果我理解正确,但这是我的解决方案:
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 函数,以使浮点数成为二进制数。该函数已经使二进制数成为字符串,因此您可以使用通常的索引。如果你想读取浮点数的特定位置,你可以把那个数字变成一个字符串,然后使用索引。
我希望你的问题是正确的。最好的, 雷帕克
【讨论】: