将字符串中每个字符的ascii转换为二进制

时间:2020-03-05 05:23:07

标签: python python-3.x loops input binary

因此,我正在尝试创建一个程序,该程序将用户输入字符串中的各个字符的ascii值加1,然后将该新数字转换为二进制。

例如,如果用户输入“ abcde”,则需要输出

1100010 1100011 1100100 1100101 1100110

,二进制值之间用空格隔开。现在,我到目前为止

text = input()
for ch in text:
    new = ord(ch) + 1

    decimal = new
    bitString = ''
    while decimal > 0:
        remainder = decimal % 2
        decimal = decimal // 2
        bitString = str(remainder) + bitString

print(bitString)

这为我提供了最后一个字符输入的二进制文件(因此,如果用户输入“ abcde”,它将给出ascii值加1的二进制文件),但是我怎样才能对所有字符进行二进制编码?

1 个答案:

答案 0 :(得分:2)

您需要在bitstring循环开始之前将for声明为空字符串。否则,每次循环运行都会清空它,这就是为什么仅输出最后一个值的原因。您也可以使用bin函数来代替ord,它会立即为您提供二进制表示形式。