2024-03-29 14:47:10 发布
网友
看看这个:
fc = '0x' for i in b[0x15c:0x15f]: fc += hex(ord(i))[2:]
假设这段代码找到了hex0040f,而不是那样写,它删除了第一个0,然后写:04f 有什么帮助吗?
print ["0x%02x"%ord(i) for i in b[0x15c:0x15f]]
使用格式字符串"%2x"告诉它将其格式设置为2个字符宽,同样"%02x"告诉它用0填充
"%2x"
"%02x"
注意,这仍然会从大于2个十六进制值的对象中删除前导0 例如:"0x%02x"%0x0055 => "0x55"
"0x%02x"%0x0055 => "0x55"
>>> map("{:02x}".format, (10, 13, 15)) ['0a', '0d', '0f']
这是因为hex()不包含任何前导零,例如:
hex()
>>> hex(15)[2:] 'f'
要确保始终有两个字符,可以在必要时使用^{}添加前导零:
>>> hex(15)[2:].zfill(2) '0f'
下面是代码中的内容:
fc = '0x' for i in b[0x15c:0x15f]: fc += hex(ord(i))[2:].zfill(2)
使用格式字符串
"%2x"
告诉它将其格式设置为2个字符宽,同样"%02x"
告诉它用0填充注意,这仍然会从大于2个十六进制值的对象中删除前导0 例如:
"0x%02x"%0x0055 => "0x55"
这是因为
hex()
不包含任何前导零,例如:要确保始终有两个字符,可以在必要时使用^{} 添加前导零:
下面是代码中的内容:
相关问题 更多 >
编程相关推荐