次の形式で 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 文字を考慮して、フィールド幅を調整する必要があることを考慮してください。0x0XxX
>>> 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'
おそらく古風な答えですが、機能的です。