尝试将ascii字符转换为二进制值时出现问题

时间:2015-10-17 10:26:12

标签: python

首先,我有两个清单:

l1 = [chr(x) for x in range(32,160)]
l2 = [bin(x)[2:].rjust(7,'0') for x in range(128)]

第一个列出128个字符,第二个128个二进制值(7位从0000000到1111111)。

我们的想法是将任何字符串转换为二进制值。 所以我的原始代码是:

def encode(message):
    for a, b in zip(l1,l2):
        message = message.replace(a, b)
    return message

可悲的是,我之前在“' 0'焦炭。 示例:

Input  : ~
Output : 1011110

Input  : ♥
Output : 0011111

Input  : a
Output : 1000001

Input  : 0
Output : 0000100010000

Input  :
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
00100000000100010000

Input  :  4
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000010100

Input  :  1
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000010001

Input  :  0
Output : 00001000100000000100010000000010001000000001000100000000100010000000010
001000000001000100000000100010000

我确定这与0转换有关,因为在执行以下代码时它可以正常工作。

def encode(message):
    for a, b in zip(l1,l2):
        print message.replace(a, b)
    return message

我该如何解决? 此外,我们可以看到♥已被转换,但它应该没有。到底是怎么回事?我需要的是128个不同的7位字节,可打印和全部(用于加密)。

0 个答案:

没有答案