【问题标题】:Integer to Hexadecimal Conversion in PythonPython中的整数到十六进制转换
【发布时间】:2015-04-23 10:09:39
【问题描述】:
a = 1
print hex(a)

上面给了我输出:0x1

如何将输出改为0x01

【问题讨论】:

标签: python int hex


【解决方案1】:
print "0x%02x"%a

x 作为格式表示“打印为十六进制”
02 表示“用零填充到两个字符”

【讨论】:

    【解决方案2】:

    试试:

    print "0x%02x" % a
    

    有点毛茸茸的,所以让我分解一下:

    前两个字符“0x”按字面意思打印。 Python 只是逐字逐句吐出。

    % 告诉 python 后面有一个格式化序列。 0 告诉格式化程序它应该用零填充任何前导空格,而 2 告诉它至少使用两列来完成它。 x 是格式化序列的结尾,表示类型 - 十六进制。

    如果您想打印“0x00001”,您可以使用“0x%05x”等。

    【讨论】:

      【解决方案3】:

      您可以使用format

      >>> a = 1
      >>> '{0:02x}'.format(a)
      '01'
      >>> '0x{0:02x}'.format(a)
      '0x01'
      

      【讨论】:

      • 这应该优先于 % 方法(又名旧式格式)。
      【解决方案4】:

      你可以使用format:

      >>> "0x"+format(1, "02x")
      '0x01'
      

      【讨论】:

        【解决方案5】:
        >>> format(1, '#04x') 
        '0x01'
        

        【讨论】:

          【解决方案6】:

          这里是 Python 3.6+ 的 f-string 变体:

          a = 1
          print(f"{a:0>2x}")
          

          字符串格式说明:

          • ::格式说明符
          • 0:填写(0
          • >: 右对齐字段
          • 2: 宽度
          • x: hex 类型

          来源:6.1.3.1 Format Specification Mini-Language

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-10-16
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-07-25
            • 2014-04-16
            相关资源
            最近更新 更多