Pythonで整数を16進文字列に変換する方法

この投稿では、Pythonで整数を16進文字列に変換する方法について見ていきます。

hex() function

整数を16進文字列に変換するPythonの方法は、組み込み関数hex()を使用する方法です。 これは 0x を先頭にした小文字の16進文字列を返します。

1
2
3
4
5
6
7
8

if __name__ == ‘__main__’:
i = 4095
h = hex(i)
print(h) # ‘0xfff’

16進数の大文字の列を取得したり接頭語を取り除くには後述の解決方法のいずれかを使用することです。

format() function

もうひとつの方法は、x format specification を使って整数を16進文字列に変換できる組み込み関数 format() を使うことである。 #x を使用した場合、16進文字列の先頭に 0x が付く。 X#X を使うと、大文字の16進文字列が得られます。

1
2
3
4
5
6
7

if __name__ == ‘__main__’s:
i = 4095
h = (format(i, ‘#x’), format(i, ‘#X’), format(i, ‘x’), format(i, ‘X’)))。
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)

f-strings

Python 3.6 から f-string を使えるようにしました。 これは文字列リテラルにfまたはFを前置することで可能です。 文字列リテラルは中括弧 {} で囲まれ、整数の後にコロン : で区切られたフォーマット指定 x を含む必要があります。

16進数文字列に 0x を付けるには #x 、大文字の16進数文字列にするには X または #X を使用します。 コードはこんな感じです。

1
2
3
4
5
6
7

if __name__ == ‘__main__’:
i = 4095
h = (f'{i:#x}’, f'{i:#X}’, f'{i:x}’, f'{i:X}’)
print(h) # (‘0xfff’, ‘0XFFF’, ‘fff’, ‘FFF’)

になります。

コメントを残す

メールアドレスが公開されることはありません。