如何将“0”和“1”流转换为字符?

我试着翻译流0,1字符,而不使用其他库,


例如“你好世界”:


0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100


我发现了这样的东西:


def BinaryToString(binary):

    bingen = (binary[i:i+7] for i in range(0, len(binary), 7))

    return ''.join(chr(eval('0b'+n)) for n in bingen)

但是当我尝试翻译时,这就是答案:


>>> BinaryToString("0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100")

"$\x11)Db<@W'TID\x04"

>>> 


牧羊人nacy
浏览 263回答 2
2回答

呼唤远方

int需要第二个参数来指定基数,所以你可以使用类似int("00001110", 2)得到 14 的东西。>>> binary = "0100100001000101010011000100110001001111001000000101011101001111010100100100110001000100">>> ''.join([chr(int(binary[i:i+8], 2)) for i in range(0, len(binary), 8)])'HELLO WORLD'

一只甜甜圈

该函数一次取 7 个二进制数字并将它们转换为一个字符。将其更改为一次转换 8 位数字。def BinaryToString(binary):&nbsp; &nbsp; bingen = (binary[i:i+8] for i in range(0, len(binary), 8))&nbsp; &nbsp; return ''.join(chr(eval('0b'+n)) for n in bingen)这一切都取决于原始文本的编码方式,但它适用于您提供的示例。(ASCII 最初使用 7 位定义。扩展 ASCII 表使用 8。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python