首页 > 解决方案 > 如何读取浮点数的特定位位置?

问题描述

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

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

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

标签: python-3.xnumpy

解决方案


我不确定,如果我理解正确,但这将是我的解决方案:

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 函数,以使浮点数成为二进制数。该函数已经使二进制数成为字符串,因此您可以使用通常的索引。如果要读取浮点数的特定位置,可以将该数字设为字符串,然后使用索引。

我希望,我没听错你的问题。最好的,莱帕克


推荐阅读