gpt4 book ai didi

python - 为什么第一个字节打印为 (b'c\x..) 而不是 (b'x63\x..)?

转载 作者:太空宇宙 更新时间:2023-11-03 21:37:42 24 4
gpt4 key购买 nike

我正在编写一个用于填充预言机攻击的程序,需要bytearrays,但如果我定义一个新的bytearray,第一个字节0x63会被打印不同。

我必须按字节XOR 2 bytearrays

test = bytearray( [99,203,00] )
print(test)
print(hex(99))

输出:

bytearray(b'c\xcb\x00')
0x63

这是我的第一个问题。感谢您的帮助!

f

最佳答案

对于字符串输出,Python 将可打印的十六进制代码替换为 chr(hexcode) 字符以用于显示目的:

print('c', ord('c'),hex(ord('c')))   #  c 99 '0x63'

t = bytearray([99,203,0])
print(t) # bytearray(b'c\xcb\x00')
print(t[0],t[1],t[2]) # 99 203 0

它们是等效的 - 但打印起来更短。您可以获得像这样的全十六进制表示:

t = bytearray([99,203,0])
t_hex = '\\'+'\\'.join( ( hex(i) for i in t) )

print(t_hex)

输出:

\0x63\0xcb\0x0 

关于python - 为什么第一个字节打印为 (b'c\x..) 而不是 (b'x63\x..)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53141884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com