【问题标题】:Python: convert string of multiple hexadecimal values to integerPython:将多个十六进制值的字符串转换为整数
【发布时间】:2017-01-31 14:14:37
【问题描述】:

我有四个 hex 数字的字符串,例如:

"0x00 0x01 0x13 0x00" 

相当于0x00011300。如何将此十六进制值转换为整数?

【问题讨论】:

标签: python python-2.7 hex decimal string-conversion


【解决方案1】:

因为你有 hex 值的字符串。您可以从字符串中删除 ' 0x' 以获取单个十六进制数字字符串。例如:

my_str =  "0x00 0x01 0x13 0x00"
hex_str = my_str.replace(' 0x', '')

hex_str 持有的值将是:

'0x00011300'   # `hex` string

现在您可以将hex 字符串转换为int 为:

>>> int(hex_str, 16)
70400

【讨论】:

    【解决方案2】:
    >>> s="0x00 0x01 0x13 0x00"
    >>> a=0
    >>> for b in s.split():
    ...    a = a*256 + int(b,16)
    ... 
    >>> a
    70400
    >>> hex(a)
    '0x11300'
    

    【讨论】:

      【解决方案3】:

      答案在这里Convert hex string to int in Python

      没有 0x 前缀,需要显式指定基数,否则无法分辨:

      x = int("deadbeef", 16)
      

      有了前缀0x,Python可以自动区分十六进制和十进制。

      print int("0xdeadbeef", 0)
      3735928559
      
      print int("10", 0)
      10
      

      (您必须将 0 指定为基数才能调用此前缀猜测行为;省略第二个参数意味着假定基数为 10。有关详细信息,请参阅 cmets。)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-20
        • 2015-11-29
        • 2013-08-20
        • 1970-01-01
        • 2018-01-22
        • 2017-08-12
        • 2014-12-15
        相关资源
        最近更新 更多