我想使用包bitstring和mpmath(或任何其他方法来保证任意设置输出精度和指定的舍入模式)来计算rcp,sqrt,sin,co s的值,ln,exp,...在以二进制bitstring形式给出的浮点输入上并获得二进制bitstring答案。我的首选方法是C语言中的MPFR,但我想探索Python的浮点高精度软件包,希望能够更轻松地进行处理。我的第一个问题是如何将以下十进制浮点数反转为bitstring转换:>>> from bitstring import *>>> a = BitArray(float=1.2,length=32)>>> a.bin'00111111100110011001100110011010'例如,如何将'00111111100110011001100110011010'馈送到bitstring或mpmath,使其解释为(恰好位于)1.2,然后将其馈送到诸如sin,cos或(再次将我的答案变成ln)。我发现很难从Python bitstring / bitstring文档中了解二进制输入。它仅说明了十进制浮点数表示的困难,而没有说明如何绕过这些仅输入精确的二进制浮点数的问题。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 BitArray采用bin参数,该参数从二进制字符串表示形式进行初始化:>>> from bitstring import *>>> a = BitArray(float=1.2, length=32)>>> a.bin'00111111100110011001100110011010'>>> b = BitArray(bin=a.bin)>>> b.float1.2000000476837158因此,一般的功能可以做到这一点:def float_from_bitstring(bitstring): return BitArray(bin=bitstring).float (adsbygoogle = window.adsbygoogle || []).push({});
10-02 21:32