如何将64位数字重新排列为8个8位数字?

时间:2019-02-14 02:04:51

标签: python

我的程序应该从用户输入中获取64位数字,然后将它们分类为8个8位数字。例如,第1、9、17、25、33、41、49、57号将是第一个8位数字。 2nd,10th ...等将是第二个8位数字,依此类推,直到生成8个8位数字。

binary = input("Enter ")
for i in range(0,8): 
    for x in range (0,7):
            if binary[i+(8*x)] == '0': 
                print("0",end="")
            else:
                print("1",end="")
    print("\n")           

有人可以告诉我怎么了吗?

1 个答案:

答案 0 :(得分:0)

from random import choices

bits = "".join(choices(["0", "1"], k=64))
numbers = [bits[i::8] for i in range(8)]
print(numbers)

首先,我生成一个长度为64的字符串,只包含一个和零。您不需要执行此步骤,因为您是从用户那里获得号码的。

该程序的主要内容在下一行,这是一个可爱的列表理解功能。它生成八个字符串,每个字符串都是原始位字符串的切片子字符串。切片操作bits[i::8]从索引i开始当前切片,步长为8(从i开始一次跳过八个字符)。