【发布时间】:2020-03-12 00:52:21
【问题描述】:
在 python 中,我得到了一个 64 位整数。这个整数是通过取几个不同的 8 位整数并将它们混合成一个巨大的 64 位整数而创建的。我的工作是再次将它们分开。
例如:
Source number: 2592701575664680400
Binary (64 bits): 0010001111111011001000000101100010101010000101101011111000000000
int 1: 00100011 (35)
int 2: 11111011 (251)
int 3: 00100000 (32)
int 4: 01011000 (88)
int 5: 10101010 (170)
int 6: 00010110 (22)
int 7: 10111110 (190)
int 8: 00000000 (0)
所以我想做的是获取我的源编号2592701575664680373 并返回一个长度为 8 的数组,其中数组中的每个 int 都是上面列出的 int。
我本来打算使用struct,但老实说,阅读documentation 并没有完全清楚我将如何实现这一点。
【问题讨论】:
-
你试过
divmod()吗? -
该死,你是对的@PadraicCunningham。我正在使用一个快速的脏工具,它不支持足够大的数字,并且它用 0 截断了最后一部分。现在我已经运行了
bin = '{0:064b}'.format(source),我发现你是对的。 -
n的事实很奇怪,最后没有 1 确实让我感到困惑 -
我更改了源编号(根据答案似乎比更改二进制文件更好)
-
struct文档并没有那么糟糕,您只需将数字加载到字符串中,然后再将其拆分为字节即可。