我正在尝试自学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)
答案 0 :(得分:4)
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)