【问题标题】:How to convert hex string to integer in Python?如何在 Python 中将十六进制字符串转换为整数?
【发布时间】:2011-02-07 20:50:58
【问题描述】:

如何转换

x = "0x000000001" # hex number string

y = "1"

【问题讨论】:

    标签: python string syntax


    【解决方案1】:

    你可以这样做:

    y = int(x, 0)  # '0' ;python intepret x according to string 'x'.
    

    在官方文档中解释为“如果基数为零,则根据字符串的内容确定正确的基数;”

    【讨论】:

      【解决方案2】:

      Python 2.7 从读取的二进制文件转换十六进制时出现问题

      Python 3 没有这个问题

      f=open(file_name,'rb')
      raw = f.read()
      
      print int(raw[6])    #error invalid literal for int with base 10:
      print ord(raw[6])    #Work
      

      【讨论】:

        【解决方案3】:
        >>> int("0x000000001", 16)
        1
        

        【讨论】:

          【解决方案4】:

          你可以这样做:

          y = int("0x000000001", 16)
          

          在你的情况下:

          y = int(x, 16)
          

          看起来您希望将 int 转换为字符串:

          y = str(int(x, 16))
          

          【讨论】:

            【解决方案5】:

            使用int() 并提供您的号码所在的基数(在您的情况下为16)。
            然后应用str() 将其转换回字符串:

            y = str(int(x, 16))
            

            注意:如果您省略基数,则使用默认基数 10,这将在您的情况下导致 ValueError

            【讨论】:

              猜你喜欢
              • 2010-12-25
              • 2015-04-30
              • 2015-11-29
              • 1970-01-01
              • 2014-11-16
              • 2017-08-12
              • 2014-12-15
              相关资源
              最近更新 更多