如何将二进制数据作为输出?

2024-09-30 18:13:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要做练习和测试。它要求:

“PractRand仅支持将压缩二进制数据作为输入进行测试。您不能将ASCII 0s和1s或ASCII十六进制或任何其他每字节没有8个随机位的数据作为输入。”

http://pracrand.sourceforge.net/Tests_overview.txt

我有128位数字,我需要将其导出到另一个程序,如下所示:

python3 mygenerator.py |/RNG|u测试标准

然后PractRand可以进行测试

这:

binary = bin(number)[2:].zfill(128)
print(binary,end='')

不起作用。这:

split=[(number >> x) & 0xFFFFFFFF for x in reversed(range(0, 128, 32))]

binary = struct.pack('qqqq', split[0], split[1], split[2], split[3])

print(binary,end='')

不工作(我正在分割数字,因为'q'格式是32位)。甚至可以输出压缩的二进制数据,而不是ASCII 0s和1s或ASCII十六进制或任何其他在Python中每字节没有8个随机位的数据吗?我真的怀疑它,虽然我知道它可以在C++中完成。p>


Tags: 数据httpnumbernet字节ascii二进制数字