【问题标题】:How read particular bit position of floating number?如何读取浮点数的特定位位置?
【发布时间】:2019-10-05 03:57:04
【问题描述】:

我想读取浮点数的特定位置,例如 x[16:3](第 4 位到第 17 位)。 C语言的案例就这么简单

bits = x & ((2**L - 1) << M);

Python 的情况下,浮点数不允许掩码操作的 '&'。 那么如何在 Python 上实现呢?

【问题讨论】:

标签: python-3.x numpy


【解决方案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 函数,以使浮点数成为二进制数。该函数已经使二进制数成为字符串,因此您可以使用通常的索引。如果你想读取浮点数的特定位置,你可以把那个数字变成一个字符串,然后使用索引。

我希望你的问题是正确的。最好的, 雷帕克

【讨论】:

  • 谢谢!我明白了。
  • 如果它工作正常,你能接受答案并关闭这个问题吗?谢谢。
猜你喜欢
  • 1970-01-01
  • 2012-07-21
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 2022-11-01
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
相关资源
最近更新 更多