我如何把这个列表变成一个字符串?



我正在尝试将二进制转换为十进制到ASCII。使用此代码,我可以将二进制输入并将其分成7位的块。

def binary_to_ascii7bits(bstring):
n = 7
byte = [bstring[i:i+n] for i in range(0, len(bstring), n)]
print(byte)

我需要能够将每个7位子字符串转换为十进制数,以便使用chr函数。如果我尝试将这个列表转换为字符串,它会打印出"['1111000']",但是我不能在字符串中使用括号和撇号。我能做些什么来解决这个问题?

首先,对于chr函数,它应该是整数,而不是小数。

在print函数之前添加这个列表推导式-

byte = [chr(64 + int(i)) for i in byte]

这将给出字节的字符串。我想这就是你想要的。

您可以再添加一行(如下所示)来实现您所描述的。

您使用int(..., 2)将二进制数的字符串表示形式转换为整数。然后应用chr得到一个字符。这个过程是使用(list)推导式完成的,因此结果是一个字符列表。然后使用join生成单个字符串。

text = '1111000' * 10
def binary_to_ascii7bits(bstring):
n = 7
byte = [bstring[i:i+n] for i in range(0, len(bstring), n)]
return ''.join(chr(int(x, 2)) for x in byte)
print(binary_to_ascii7bits(text)) # xxxxxxxxxx

相关内容