How to convert a hex string to hex number
我要将十六进制字符串(例如:0xAD4转换为十六进制数字,然后将0x200添加到该数字,然后再将该数字以0x的形式打印为字符串。
我尝试了第一步:
1
| str(int(str(item[1][:-2]),16)) |
但要打印的值是十进制字符串,而不是十六进制格式的字符串(0x格式)(我要以0x的形式打印最终结果)
- [:-2]从该号码中删除最后00个
- item[1]是以0x的形式包含十六进制数。
- 在Python中没有十六进制数这样的东西。只有数字。因此,您要将十六进制字符串转换为数字,而不是十六进制数字,然后将数字打印为十六进制。
- @史蒂文杰索普,你的评论是答案,两个答案都是评论:)
- @格里耶什乔汉:不,这不是一个答案。这个问题包含了一个误解,但是在纠正了这个误解之后,这个问题仍然存在,我的评论没有回答它。答案是。
- @Stevejessop是的,但我认为应该在回答中解释的重要一点是,十六进制只是以相同的方式(如您所说)表示所有数字的存储,因此2772和0XAD4之间没有区别。因此,如果i = 0XAD4,那么print i将输出2772,而不是ad4,op需要使用%x。
- python中转换十六进制字符串到int的可能重复
试试这个:
1 2 3 4
| hex_str ="0xAD4"
hex_int = int(hex_str, 16)
new_int = hex_int + 0x200
print hex(new_int) |
如果您不喜欢开头的0x,请将最后一行替换为
使用带第二个参数16的int函数,将十六进制字符串转换为整数。最后,使用hex函数将其转换回十六进制数。
1
| print hex(int("0xAD4", 16) + int("0x200", 16)) # 0xcd4 |
相反,你可以直接做
1
| print hex(int("0xAD4", 16) + 0x200) # 0xcd4 |
- 我认为OP的困惑在于他在打印i时区分了i = 0xad4和i = 2772。(当我读到他的感谢时)不管怎样,我对你们两个都不客气,因为我现在不客气了。
使用格式字符串
1 2
| intNum = 123
print"0x%x"%(intNum) |
或hex功能。
1 2
| intNum = 123
print hex(intNum) |
- 看起来倒数运算需要"字符串到十六进制数字",但您的答案是"数字到十六进制字符串"!!
- 您可以通过添加在0x前面的十六进制数这一事实来改进答案,这只是为了方便用户使用,每个数都存储在二进制中,而不是十进制中。
- 我想他想把整数转换成十六进制字符串。因为他已经把十六进制字符串转换成整数了。
- 读题目,读问题,注意他的陈述问题。第二次评论你的原因。
- 啊,你是说他把弦误认为数字?
- 没有人认为i = 2772和j = 0xad4是两个不同的东西。
- 我已经更新了这个问题。看起来现在更清楚了。不管怎样,我得到了答案。