Integer to Hexadecimal Conversion in Python

后端 未结 6 1707
执念已碎
执念已碎 2021-01-13 11:37
a = 1
print hex(a)

The above gives me the output: 0x1

How do I get the output as 0x01 instead?

相关标签:
6条回答
  • 2021-01-13 12:05

    You can use format:

    >>> "0x"+format(1, "02x")
    '0x01'
    
    0 讨论(0)
  • 2021-01-13 12:07
    >>> format(1, '#04x') 
    '0x01'
    
    0 讨论(0)
  • 2021-01-13 12:12

    You can use format :

    >>> a = 1
    >>> '{0:02x}'.format(a)
    '01'
    >>> '0x{0:02x}'.format(a)
    '0x01'
    
    0 讨论(0)
  • 2021-01-13 12:15

    Try:

    print "0x%02x" % a
    

    It's a little hairy, so let me break it down:

    The first two characters, "0x" are literally printed. Python just spits them out verbatim.

    The % tells python that a formatting sequence follows. The 0 tells the formatter that it should fill in any leading space with zeroes and the 2 tells it to use at least two columns to do it. The x is the end of the formatting sequence and indicates the type - hexidecimal.

    If you wanted to print "0x00001", you'd use "0x%05x", etc.

    0 讨论(0)
  • 2021-01-13 12:19

    Here is f-string variant for Python 3.6+:

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

    Explanation of string formatting:

    • :: format specifier
    • 0: fill (with 0)
    • >: right-align field
    • 2: width
    • x: hex type

    Source: 6.1.3.1 Format Specification Mini-Language

    0 讨论(0)
  • 2021-01-13 12:20
    print "0x%02x"%a
    

    x as a format means "print as hex".
    02 means "pad with zeroes to two characters".

    0 讨论(0)
提交回复
热议问题