python - 在Python中将字符串转换为二进制,并将二进制转换为十进制?

标签 python string binary converters

我需要将一个字符串转换为二进制,然后将这个二进制数转换为十进制。我所做的就是向用户询问一个单词,将每个字符转换为列表索引,然后将每个索引转换为二进制,将二进制数倒转,然后转换为十进制。

没用,我也不知道为什么。它说字符串没有属性 to_bytes (我不记得在哪里看到这个语法,我正在寻找一种转换为二进制的方法,并撤消它,我认为是在 StackOverflow 中) 。有人能帮我吗?代码如下:

import binascii    
senha = list(input("Digite uma frase: "))
senha2 = senha[::-1]
for char in senha2:
    char = bin(int.from_bytes(char.encode(), 'big'))
    char = char[::-1]
    char.to_bytes((char.bit_length() + 7) // 8, 'big').decode()

最佳答案

我不确定这是否正是您想要的,但这在Python3中有效:

In [79]: senha = 'this is my input'
In [80]: senha_bytestring = bytes(senha, 'ascii')
In [81]: senha_bitstring = '0b' + ''.join( [bin(c)[2:] for c in senha_bytestring] )
In [82]: print (senha_bitstring)
0b1110100110100011010011110011100000110100111100111000001101101111100110000011010011101110111000011101011110100
In [83]: senha_dec = int(senha_bitstring, 2)
In [84]: print (senha_dec)
592342518175792645920268465486580

在Python2中没有“字节”类型,但使用ord应该有效:

In [85]: senha = 'this is my input'
In [86]: senha_bytestring = [ ord(c) for c in senha ]
In [87]: senha_bitstring = '0b' + ''.join( [bin(c)[2:] for c in senha_bytestring] )
0b1110100110100011010011110011100000110100111100111000001101101111100110000011010011101110111000011101011110100
In [88]: senha_dec = int(senha_bitstring, 2)
In [89]: print (senha_dec)
592342518175792645920268465486580

关于python - 在Python中将字符串转换为二进制,并将二进制转换为十进制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25822625/

相关文章:

c++ - Boost二进制序列化 - 固定长度错误的双数组

jquery - Selenium/python - 无法单击元素

C# 字符串连接 - 内联与逐行

c++ - 使用 strcpy 将 C++ 字符串转换为 Char 数组

c# - 在 WPF 的富文本框中突出显示关键字

c# - 如何在 C# 中将对象写入二进制文件?

在 C 中从二进制 "components"构造一个 int

python - 下载时解压缩存档

python - 有效过滤字典的嵌套列表

python - x11 - 导入错误 : No module named 'kivy.core.window.window_x11'