我正试图自学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)