【问题标题】:long hex string to integer in python [duplicate]python中的长十六进制字符串到整数[重复]
【发布时间】:2013-06-26 09:43:58
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python type-conversion


    【解决方案1】:

    使用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
      >>>
      

      【讨论】:

      • 谢谢,这正是我想要的。
      猜你喜欢
      • 2013-04-28
      • 2021-03-07
      • 2016-05-22
      • 2017-08-07
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 2015-03-09
      相关资源
      最近更新 更多