当前位置: 首页 > 知识库问答 >
问题:

获取Python中浮点的“位”?

巫马昆琦
2023-03-14

我正在寻找Java的float.floattobits的Python等价物。

我找到了这个python:获取和操纵(作为整数)浮点的位模式,但是有没有人知道一种不那么复杂的方法呢?

共有2个答案

法风畔
2023-03-14

下面是python浮点1的64位小端表示,只是为了补充讨论内容:

>>> import struct
>>> import binascii
>>> print('0x' + binascii.hexlify(struct.pack('<d', 123.456789)))
0x0b0bee073cdd5e40

参考资料:

  • struct.pack字母顺序和字节大小格式说明符
  • binascii.hexlify

[1]例如,为了与intel上的.NET的位转换器(即小端点)实现互操作性,我特别需要这个

洪高阳
2023-03-14

Alex Martelli在这个问题中给出的答案非常简单--你可以把它简化为:

>>> import struct
>>> 
>>> 
>>> def floatToBits(f):
...     s = struct.pack('>f', f)
...     return struct.unpack('>l', s)[0]
...     
... 
>>> floatToBits(173.3125)
1127043072
>>> hex(_)
'0x432d5000'

一旦您将它作为一个整数,您就可以执行您需要的任何其他操作。

您可以将操作顺序颠倒为往返:

>>> def bitsToFloat(b):
...     s = struct.pack('>l', b)
...     return struct.unpack('>f', s)[0]

>>> bitsToFloat(0x432d5000)
173.3125
 类似资料:
  • 我在学习如何使用java 8流时,发现了一些奇怪的事情。 <代码>数组。stream()具有除浮点数组之外的所有方法: <代码>数组。流(int[]):int流 同样,有int、双精度等的Stream实现,但没有浮点数: 有什么原因吗? 使用浮动流的推荐方法是什么?

  • 是 在[-1,1]中获取随机Float值的好方法? 一个常见的建议似乎是

  • 问题内容: 谁能解释模运算符在Python中如何工作?我不明白为什么。 问题答案: 其实,这是不正确的3.5 % 0.1是0.1。你可以很容易地测试一下: 实际上,在大多数系统上是。但是,在某些版本的Python上是: 现在,你可能想知道为什么是而不是。这是由于通常的浮点舍入问题。如果你还没有阅读每位计算机科学家应该知道的有关浮点运算的知识,那么你应该-至少是对此问题的简要概述。 还需要注意的是3

  • 问题内容: 我很困惑为什么在这种情况下python为什么要添加一些额外的十进制数,请帮助解释 问题答案: 浮点数是一个近似值,它们不能精确存储十进制数。因为它们试图仅用64位表示很大范围的数字,所以它们必须在某种程度上近似。 意识到这一点非常重要,因为它会导致一些怪异的副作用。例如,你可能会非常合理认为,十批的总和会。尽管这似乎合乎逻辑,但在浮点数方面也是错误的: 您可能会认为。浮点世界再次不同意

  • 问题内容: 如何使用正则表达式从字符串中提取双精度值。 问题答案: 是简单的方法。请勿将regex用于内置类型。

  • 问题内容: 我使用的是jQuery(v1.7.1),我需要获取元素的绝对浮点宽度,但是jQuery的所有width方法似乎都舍入了width的值。 例如,如果元素的实际宽度为,则jQuery的width方法返回,即忽略十进制值。 因此,我的问题是:如何获取元素宽度的浮点值? 问题答案: 如果您已经有对DOM元素的引用,将为您提供所需的值。 该方法自Internet Explorer 4起就存在,因