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

用Python导出4字节浮点

郭盛
2023-03-14

我想用Python脚本将浮点数导出到二进制文件中,用C程序读取二进制文件,并将字节解释为浮点数。(在x86/IEEE754机器上。无需转换。只需从文件中读取数据并将其称为浮点数组。)

如果我理解正确的话,Python使用的浮点数与C中的double相同,所以是8字节。有没有办法让这一切顺利进行?要从Python中导出与C中的4字节浮点相同的表示形式的4字节浮点吗?

共有2个答案

庾勇军
2023-03-14

结构模块负责处理这个问题。

>>> import struct
>>> struct.pack("f", 3.14)  # 4-byte float
b'\xc3\xf5H@'
>>> struct.pack("g", 3.14)  # 8-byte double
b'\x1f\x85\xebQ\xb8\x1e\t@'

有关如何控制结果结尾的更多信息,请参阅文档。

曾明诚
2023-03-14

arrayPython模块允许您一次性转储浮点数组:

import array
def dump_numbers(filename, numbers):
    with open(filename, 'wb') as fp:
        array.array('f', numbers).tofile(fp)
 类似资料:
  • 4. 浮点数 浮点数在计算机中的表示是基于科学计数法(Scientific Notation)的,我们知道32767这个数用科学计数法可以写成3.2767×104,3.2767称为尾数(Mantissa,或者叫Significand),4称为指数(Exponent)。浮点数在计算机中的表示与此类似,只不过基数(Radix)是2而不是10。下面我们用一个简单的模型来解释浮点数的基本概念。我们的模型由

  • 我有2 div,我想漂浮在行或容器div。对于这些类,. prie-entent-md-start和. prie-entent-md-end,它什么都不做。div只是简单地挨着彼此,没有任何浮动。 我也尝试了像左浮动和右浮动这样的课程,但问题是一样的。 我要做的是,对齐。将内容md开始div对齐到行的左侧,并将内容md结束div对齐到行的右侧。

  • 问题内容: 我有一个必须解析的二进制文件,并且正在使用Python。有没有办法占用4个字节并将其转换为单个精度浮点数? 问题答案:

  • 问题内容: 我正在为我的自定义StringDatatype编写单元测试,并且需要写下4字节的unicode字符。“ \ U”-不起作用(非法转义字符错误),例如:U + 1F701(0xf0 0x9f 0x9c 0x81)。如何将其写成字符串? 问题答案: Unicode代码点不是4个字节。它是整数(目前介于U + 0000到U + 10FFFF之间)。 您的4个字节是(很自然地)其UTF-8编码

  • 问题内容: 如果结果为小数,如何打印浮点数;如果结果没有小数,如何打印整数? 示例结果 问题答案: 您可以尝试使用简单的Python字符串格式化方法: 如果满足以下条件,将为您提供以下输出: 或此输出,如果:

  • 我向类添加了一个方法,以返回以null结尾的字节集。我希望在java中返回一个字节[],由于这一更改,该函数在返回字节方面似乎工作得很好,但jvm在退出时出现segv崩溃。我打印了输出中显示的“exiting main”,然后出现了segv C类 斯奎德 java-version的结果 java版本“1.7.0”java(TM)SE运行时环境(构建pxa6470sr5-20130619\U 01(