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

时间:2018-12-12 13:43:30

标签: python python-2.x

我正在尝试将01的流转换为字符, 无需使用其他库,

例如“ Hello World”:

  

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"
>>> 

2 个答案:

答案 0 :(得分:1)

该函数一次获取7个二进制数字并将其转换为字符。对其进行更改以一次转换8位数字。

def BinaryToString(binary):
    bingen = (binary[i:i+8] for i in range(0, len(binary), 8))
    return ''.join(chr(eval('0b'+n)) for n in bingen)

这全部取决于原始文本的编码方式,但是它可以与您提供的示例一起使用。 (ASCII最初使用7位定义。扩展的ASCII表使用8位。)

答案 1 :(得分:1)

consumer.Poll需要第二个参数来指定基数,因此您可以使用int之类的值来获得14。

int("00001110", 2)