我在python中测试了一些按位函数的功能。我想看看我是否可以连接hex" strings"作为转换后的整数,并在应用逻辑按位运算后保存为新的十六进制字符串。
def hst(self):
ref = 0
href = ['1b','1bfa','001','0010']
for i in range(0,len(href)):
if i > 0:
ref = ref << len(href[i])*4
ref = ref ^ int(href[i],16)
else:
ref = int(href[i],16)
return hex(ref)
我期待1b1bfa0010010,但我得到fa0001010。 关于为什么以及如何解决这个问题的任何想法?正如我所说,我只是想了解这一切是如何运作的。我不想使用任何库,只包含没有import语句的内容。
它没有进行转变。我从print(hex(ref))
看到了
shift: 0x1b00
xor: 0xfa
shift: 0xfa0000
xor: 0xfa0001
shift: 0xfa0001000
xor: 0xfa0001010
正在发生转变,但没有正确划线到正确的位置。
OMG Windows,你太烂了!我只在Windows中得到了错误的答案。 Linux它的工作原理。为什么Windows太吸引了?!谢谢你们的帮助!