79

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

入力:255 出力:ff

入力:2 出力:02

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

4

3 に答える 3

154

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'
于 2013-02-03T22:34:37.503 に答える
25

これがあなたが望むものだと思います:

>>> def twoDigitHex( number ):
...     return '%02x' % number
... 
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
于 2013-02-03T22:58:20.570 に答える
-8

別の解決策は次のとおりです。

>>> "".join(list(hex(255))[2:])
'ff'

おそらく古風な答えですが、機能的です。

于 2014-10-01T18:47:41.340 に答える