web-dev-qa-db-ja.com

Python 16進数

次の形式で10進数を16進数に変換する方法(0xプレフィックスなしで、ゼロが埋め込まれた少なくとも2桁)?

入力:255出力:ff

入力:2出力:02

hex(int)[2:]を試しましたが、最初の例は表示されますが、2番目の例は表示されないようです。

64
VikkyB

format() function'02x'形式で使用します。

>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'

02部分は、format()に少なくとも2桁を使用し、ゼロを使用して長さを埋めるように指示します。xは小文字の16進数を意味します。

Format Specification Mini Language は、大文字の16進出力のXも提供し、フィールド幅の前に#を含めることができます0xまたは0Xプレフィックス(フォーマッターとしてxまたはXを使用したかどうかに応じて)。これらの余分な2文字を考慮して、フィールド幅を調整する必要があることを考慮してください。

>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'
136
Martijn Pieters

私はこれがあなたが望むものだと思う:

>>> def twoDigitHex( number ):
...     return '%02x' % number
... 
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
22