如何在 Python 中将长整型写为二进制?

2023-11-25

在 Python 中,长整数具有无限的精度。我想将 16 字节(128 位)整数写入文件。struct标准库仅支持最多 8 字节整数。array具有相同的限制。有没有办法在不屏蔽和移动每个整数的情况下做到这一点?

这里需要澄清一下:我正在写入一个将从非 Python 程序中读入的文件,所以 pickle 已经被淘汰了。全部 128 位均已使用。


我认为对于无符号整数(并忽略字节序)类似

import binascii

def binify(x):
    h = hex(x)[2:].rstrip('L')
    return binascii.unhexlify('0'*(32-len(h))+h)

>>> for i in 0, 1, 2**128-1:
...     print i, repr(binify(i))
... 
0 '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
1 '\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01'
340282366920938463463374607431768211455 '\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff'

从技术上讲,可能会满足具有非 Python 特定输出、不使用显式掩码以及(我假设)不使用任何非标准模块的要求。不过,并不是特别优雅。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Python 中将长整型写为二进制? 的相关文章

随机推荐

  • NodeJS 通过一个路由文件表达多个路由文件

    我正在学习 NodeJS 我有一个nodeJS API 项目 我想在路线中使用版本 因此我创建了以下文件夹结构 application app js routes V1 routes js users js 这是我的 app js 文件 v
  • SQL 多条件 CTE 递归

    在数据库中 每个标识符都有以下 2 条信息 控制他们的公司 以及他们拥有少量控制权的公司 大致意思是 2 个表 忽略一些唯一标识符 组织 orgid org immediate parent orgid 1 2 2 2 3 1 5 4 关系
  • C#程序导致蓝屏?

    这只是蓝屏显示的重要内容 我使用的是 Windows 7 x64 已检测到问题 Windows 已关闭以防止损坏 到您的计算机 PROCESS HAS LOCKED PAGES 停止 0x00000076 0x000000000000000
  • ng-init 是否像 ng-model 一样监视实例化属性的变化?

    ng init 是否像 ng model 一样监视实例化属性的变化 显然不是 所以我设置了一个手表 如下所示 app js var app angular module plunker app controller MainCtrl fun
  • Plinq、Cores 和 WithDegreeOfParallelism?

    据我了解 Plinq 决定打开多少个线程 每个线程位于不同核心的线程上 按核心数 Core 1 Core 2 Core 3 Core 4 因此 如果我有一个 Plinq 任务来查找所有前 1000 个素数 Plink将打开一个新的Threa
  • 使用 Android 的 AudioTrack 组合声音样本字节会产生噪音

    我正在构建一个相当简单的 Android 应用程序 sdk 修订版 14 ICS 它允许用户一次选择两个音频剪辑 均为 RIFF WAV 格式 小端 签名 PCM 16 位编码 并将它们组合在创造新声音的各种方式 我用于此组合的最基本方法如
  • 在 OpenCV C++ 中将图像的所有白色像素更改为透明

    我在 OpenCV 中有这张图片imgColorPanel imread newGUI png CV LOAD IMAGE COLOR 当我用灰度加载它时imgColorPanel imread newGUI png CV LOAD IMA
  • 智能分页算法[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在寻找智能分页的示例算法 所谓聪明 我的意思是 我只想显示当前页面的 2 个相邻页面 因此我不会以长得可笑的页面列表结束 而是将其截断 这是一个简单的例子 可以让它更清楚 这就是
  • 如何在 Erlang 中读取整数?

    我正在尝试读取用户输入的整数 如 C 中的 cin gt gt nInput 我发现 io fread bif 来自http www erlang org doc man io html 所以我写这样的代码 ok X io fread 输入
  • 具有多个表的单个文本文件

    我正在尝试从具有多个表的单个文本文件导入数据 这些表的长度各不相同 但每个表之间有共同的间隔 每个表之间的分隔是一个数字后跟一个字符 例如 19 EOP 1 10 92 9144 202 1271 0 B 10 Dec 2014 11 46
  • 如何从 Win32 中的 func ptr 获取模块句柄?

    我正在研究虚拟机的本机调用绑定 其中一项功能是能够在运行时按名称查找标准 libc 函数 在 Windows 上 这变得有点麻烦 因为我需要获取进程中当前加载的 msvcrt 模块的句柄 通常这是 msvcrt dll 但也可能是其他变体
  • 为什么不可变对象受到 JVM GC 的喜爱?

    我知道JVM GC喜欢短寿命对象的原因 因为它可以在minor GC中收集 但为什么 JVM GC 喜欢不可变对象呢 编辑 Charlie Hunt 说 GC 喜欢他的不可变对象推介会 Thanks 如果 GC 可以知道某个对象不包含对任何
  • jQuery - 如何知道窗口是否正在调整宽度/高度或两者的大小?

    我在使用 jQuery 函数调整窗口大小时遇到 一些问题 resize 我想知道哪个尺寸变大 变小 宽度或高度 我需要这个 因为如果我只设置两个条件 如果宽度比 div 大 50px 如果高度比 div 大 50px pseudocode
  • 从 NSArray 获取单个属性的 NSArray

    我面临着一个非常常见的情况 我有一个 NSArray 它有一个自定义类型的对象 比如 Person Person 类具有以下属性 firstName lastName 和age 如何从具有 Person 对象的 NSArray 中获取仅包含
  • 具有可变 Excel 连接管理器的 SSIS

    我正在尝试使用 SSIS 中的 WMI 事件观察器任务自动执行包 我想要的功能是当 Excel 文件放入某个文件夹时自动执行包 但是 这些 excel 文件将是用于填充数据库的连接管理器 目前 SSIS 不允许我这样做 因为我的 Excel
  • Primefaces selectCheckboxMenu 过滤器在 selectOneMenu 位于数据表内部时不起作用

    我有一个 Primefaces 5 0 数据表 我使用两列过滤器 selectOneMenu Filter1 和 selectCheckboxMenu Filter2 两个过滤器的数据都填充得很好 selectOneMenu Filter1
  • 根据属性值有条件地包含组件

    我有一个 ListView 它显示来自 API 的一些数据 在我的列表项中 我需要有两个不同的组件树 具体取决于该行的数据 更具体地说 如果该行有关联的图像 我需要显示带有标签的图像 并以某种方式排列 如果它没有图像 那么我只想显示一个标签
  • UI图像元数据

    在我的应用程序中 我从资源库中检索 UIImage 该图像具有元数据 然后 应用程序会调整图像大小并旋转图像 从而创建新图像 新图像没有预期的原始元数据 但是如何在上传之前将元数据添加回图像 提前致谢 我自己修复了它 这是我使用的方法 以防
  • Android RecyclerView 滚动性能

    我创建了 RecyclerView 示例创建列表和卡片指导 我的适配器有一个仅用于膨胀布局的模式实现 问题是滚动性能较差 这是在只有 8 个项目的 RecycleView 中 在一些测试中我验证了在Android L中不会出现这个问题 但在
  • 如何在 Python 中将长整型写为二进制?

    在 Python 中 长整数具有无限的精度 我想将 16 字节 128 位 整数写入文件 struct标准库仅支持最多 8 字节整数 array具有相同的限制 有没有办法在不屏蔽和移动每个整数的情况下做到这一点 这里需要澄清一下 我正在写入