将字符串转换为十六进制

2024-04-26 05:33:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个字符串文件,但其中的字符串表示十六进制值。例如,我的文件中有这样的字符串:

1091    A3B7    56FF    ...

我不想将它们用作字符串,而是用作十六进制值;然后将十六进制转换为整数

例如:

1091(in string)---> 1091(in hexa)---> 4241 # The int value of 1091 in hexa

所以我在网上查了一下。我尝试了很多不同的方法:

  1. Print a string as hex bytes?

  2. Convert hex string to int in Python

但没有任何东西完全符合我的需要,或者根本就不起作用。在

这是我代码的一部分:

^{pr2}$

这是我想读的那种文件:

@
I01010100B00725030178
V01109103
I02020100B00725030148
V0215AA5C
$
@

Tags: 文件ofthe方法字符串instringvalue
2条回答
>>> int('1091', 16)
4241

^{}的第二个参数是解释第一个参数的基础。在

你可以试试这样,以16为基数的整数:

>>> my_string = "1091 A3B7 56FF"
>>> map(lambda x:int(x,16), my_string.split())
[4241, 41911, 22271]

或者您可以同时拥有:

^{pr2}$

如果您对lambdamap不满意,可以使用列表理解

>>> [[x,int(x,16)] for x in my_string.split()]
[['1091', 4241], ['A3B7', 41911], ['56FF', 22271]]

相关问题 更多 >