gpt4 book ai didi

python - 如何使用 bitstring 包将 float 输入为 '0' 和 '1' 字符的字符串?

转载 作者:太空宇宙 更新时间:2023-11-04 09:59:12 24 4
gpt4 key购买 nike

我想使用包 bitstringmpmath(或任何其他方式来保证任意设置的输出精度和指定的舍入模式)来计算 的值rcp, sqrt, sin, cos, ln, exp >,... 在以二进制 bitstring 形式给出的浮点输入上得到二进制 bitstring 答案。

我的首选是 C 中的 MPFR,但我想探索 Python 的浮点高精度包,希望更容易处理。我的第一个问题是如何将以下十进制 float 反转为 bitstring 转换:

>>> from bitstring import *
>>> a = BitArray(float=1.2,length=32)
>>> a.bin
'00111111100110011001100110011010'

即如何将 '00111111100110011001100110011010' 馈送到 bitstringmpmath 以将其解释为(刚刚超过)1.2 然后将其提供给 sincosln 等函数(将我的答案转换为 bitstring再次)。

我发现很难从 Python bitstring/mpmath 文档中了解二进制输入。它只说了十进制 float 表示的困难,但没有说如何绕过这些简单地输入精确的二进制 float 。

最佳答案

BitArray 采用 bin 参数,该参数从二进制字符串表示形式对其进行初始化:

>>> from bitstring import *
>>> a = BitArray(float=1.2, length=32)
>>> a.bin
'00111111100110011001100110011010'
>>> b = BitArray(bin=a.bin)
>>> b.float
1.2000000476837158

所以一个通用的函数来做到这一点:

def float_from_bitstring(bitstring):
return BitArray(bin=bitstring).float

关于python - 如何使用 bitstring 包将 float 输入为 '0' 和 '1' 字符的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44572406/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com