python二进制转十六进制_在Python 3中如何从二进制到字节转换为十六进制?

我正在尝试编写一个程序,将两个十六进制字符串转换为字节,并将字节转换为二进制。一旦进入二进制,我想对它们执行异或转置。这已经完成了,我想把二进制字符串转换回字节,然后再转换成十六进制。我已经知道答案应该是什么了,这只是一个从a到B的问题

我目前掌握的代码如下:input1 = "1c0111001f010100061a024b53535009181c"

input2 = "686974207468652062756c6c277320657965"

target = "746865206b696420646f6e277420706c6179"

d = conversions.hexconvert(input1)

e = conversions.hexconvert(input2)

print(d)

print(e)

f = bitstring.BitArray(d)

g = bitstring.BitArray(e)

xor1 = f.bin

xor2 = g.bin

print("xor1 is", xor1)

print("xor2 is", xor2)

xor1, xor2 = xor2, xor1

print("xor1 is now:", xor1)

函数“hexconvert”由以下代码组成:import codecs

def hexconvert(input):

output = codecs.decode(input, 'hex')

return(output)

我的代码目前显示如下:b'\x1c\x01\x11\x00\x1f\x01\x01\x00\x06\x1a\x02KSSP\t\x18\x1c'

b"hit the bull's eye"

xor1 is : 000111000000000100010001000000000001111100000001000000010000000000000110000110100000001001001011010100110101001101010000000010010001100000011100

xor2 is : 011010000110100101110100001000000111010001101000011001010010000001100010011101010110110001101100001001110111001100100000011001010111100101100101

xor1 is now: 011010000110100101110100001000000111010001101000011001010010000001100010011101010110110001101100001001110111001100100000011001010111100101100101

到目前为止一切都很好。我想知道在这段代码的末尾可以添加什么,将xor1转换为字节,然后转换为十六进制,这样我就可以将它与应该得到的结果进行比较。我一直在想如何使用struct、binasci,甚至是bitstring,但我一无所获。非常感谢所有的建议。

如果有人能建议如何提高代码的效率,那也太好了。

非常感谢提前!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值