binascii.hexlify()将二进制返回为String,而不是Integer



我正试图自学python,但通常只是在摆弄它。不过我遇到了一些问题。

基本上,我试图制作一些东西,将字符串转换为二进制,将其位移x,然后将其作为新字符串返回给您。

我发现实现这一目标的最佳方法似乎是binascii.hexlify(str).

我遇到的问题是,这个方法似乎确实向我返回了二进制表示……但作为字符串??

我不能在字符串上调用int(),我已经尝试了bin(int())等的多种组合。我有点困在这里了,伙计们,如果有任何帮助,我们将不胜感激:-)

我知道我可能完全错了,但是嘿。我在自学所以…:-)

请参阅以下代码:

import binascii
password = raw_input("Enter your Password")
bits = int(raw_input("Shift By:"))
def getBinary(word):
    return bin(int(binascii.hexlify(word), 16))
def shift(bin, num):
    return bin << num
shift(getBinary(password), bits)

bin()hex()等只是数字的字符串形式的表示。为了能够进行位移等操作,请将值保持为整数!记住,计算机中的每一条数据都是二进制的。然后在输出时进行转换。int的默认输出转换是将其打印为以10为基数的数字,使用数字0-9;)。因此,请尝试以下

import binascii
password = raw_input("Enter your Password: ")
bits = int(raw_input("Shift By: "))
def getBinary(word):
    return int(binascii.hexlify(word), 16)
def shift(bin, num):
    return bin << num
shifted = shift(getBinary(password), bits)
print bin(shifted)

最新更新