次の形式で 10 進数を 16 進数に変換する方法 (0x プレフィックスなしで、ゼロが埋め込まれた少なくとも 2 桁)?
入力:255
出力:ff
入力:2
出力:02
試してみhex(int)[2:]
ましたが、最初の例は表示されますが、2 番目の例は表示されないようです。
format()
関数を'02x'
フォーマットで使用します。
>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'
この02
部分はformat()
、少なくとも 2 桁を使用し、ゼロを使用して長さを埋めるように指示し、x
小文字の 16 進数を意味します。
Format Specification Mini LanguageX
では、大文字の 16 進出力も提供されます。また、フィールド幅の前にまたはプレフィックス#
を含めることができます (フォーマッターとして使用するかどうかによって異なります)。これらの余分な 2 文字を考慮して、フィールド幅を調整する必要があることを考慮してください。0x
0X
x
X
>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'
これがあなたが望むものだと思います:
>>> def twoDigitHex( number ):
... return '%02x' % number
...
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
別の解決策は次のとおりです。
>>> "".join(list(hex(255))[2:])
'ff'
おそらく古風な答えですが、機能的です。