Python中的长十六进制字符串到整数[重复]

问题描述 投票:0回答:2

我从模块收到一个表示 long int 的字符串

>>> str = hex(5L)
>>> str
'0x5L'

我现在想要的是将字符串 str 转换回数字(整数)

int(str,16) 由于 L 而不起作用。

有没有办法做到这一点而不从字符串中删除最后一个 L ?因为字符串也可能包含不带 L 的十六进制?

python type-conversion
2个回答
5
投票

使用

str.rstrip
;它适用于两种情况:

>>> int('0x5L'.rstrip('L'),16)
5
>>> int('0x5'.rstrip('L'),16)
5

或者以这种方式生成字符串:

>>> s = '{:#x}'.format(5L)  # remove '#' if you don' want '0x'
>>> s
'0x5'
>>> int(s, 16)
5

2
投票

你甚至可以只使用:

>>> str = hex(5L)
>>> long(str,16)
5L
>>> int(long(str,16))
5
>>>
© www.soinside.com 2019 - 2024. All rights reserved.