Pythonの16進数への文字列

String Hexadecimal Python



16進数の基数は16であり、接頭辞0xを使用して16進数形式で文字列を表すことができます。

次の方法を使用して、文字列を16進数に変換できます。







  1. hex(n)メソッドの使用
  2. encode()メソッドの使用
  3. literal_eval()メソッドの使用

方法1:16進数()を使用する

hex()メソッドを使用して文字列を16進数に変換できます。 hex()メソッドは整数形式のパラメーターを受け入れます。そのためには、最初に文字列を整数に変換してから、次に示すようにその値をhex()メソッドに渡す必要があります。



例:string_to_hex.py

1
2
3
4
5
6
7
8
9
10
十一
12
13
14
15
16
17
18
19
20
21
#string_to_hex.py

NS = 「245FC」

#strをint()に渡して、base16intに変換します

base16INT= int((NS 16)。

#変換された文字列をbase16の16進int値に出力します

印刷(('価値'base16INT)。

印刷(('価値'タイプ((base16INT)。)。

hex_value= 16進数((base16INT)。

印刷((hex_value)。

#値のタイプをチェックする

印刷((タイプ((hex_value)。)。

出力:

1
2
3
4
5
6
7
価値148988

価値<クラス 'int'>>

0x245fc

<クラス 'str'>>

3行目:デモ用の文字列を作成しました。

6行目: その文字列を基数16のint()メソッドに渡します。これで、このint()メソッドは文字列を16進整数値に変換します。



9行目: 文字列を16進数の整数に変換した後に取得した値を出力します。





10行目: また、値の型を出力して、文字列が整数の形式になったことを確認します。

12行目: 組み込みのhex(n)メソッドが整数値を受け入れ、整数を16進文字列に変換することはわかっています。そのため、文字列を整数に変換して、hex()メソッドに渡す必要があります。そのbase16INT値をhex()メソッドに渡し、hex_value、文字列16進数を取得しました。



13行目: その変換された16進値を出力します。

16行目: 変換された16進値の型を出力します。これは、出力に文字列型であることを示しています。

そこで、文字列を16進値に変換しました。

方法2:encode()を使用して文字列を16進数に変換します

通常の文字列を、16進文字を含まない16進文字列に変換することもできます。そのためには、encode()メソッドを使用して文字列をバイトに変換する必要があります。次に、以下に示すように、文字列を16進数に変換できます。

1
2
3
4
5
6
7
8
9
10
十一
12
13
14
15
16
17
18
19
20
21
22
2. 3
24
25
#string_to_hex_utf8.py



#文字列をバイトに変換する

NS= 'linuxhint'エンコード(('utf-8')。



#変換された文字列をバイトに出力します

印刷((NS)。



#文字列バイトを16進文字列に変換します

hex_str= NS16進数(()。



#変換された16進値タイプを出力します

印刷((タイプ((hex_str)。)。

出力:

1
2
3
NS'linuxhint'

<クラス 'str'>>

4行目から7行目: 16進文字を含まない文字列を作成しました。次に、encode()メソッドを使用してこれらの文字列をバイトに変換します。次に、それらのバイトを出力します。これは、出力行番号1に表示されます。

10行目から13行目: ドット演算子を使用してhex()メソッドを呼び出すと、バイトは必要な16進文字列値に変換されます。結果の文字列のタイプを確認するために、行番号13を出力するだけで、出力はそれが文字列の16進タイプであることを示します。

メソッド3.ast.literal_eval()メソッドを使用する

astライブラリメソッドliteral_evalを使用して、文字列を整数に変換することもできます。このメソッドは、文字列を整数に変換し、hex()メソッドを使用して文字列を16進文字列に変換します。ただし、このメソッドは0xプレフィックス文字のみを受け入れます。

1
2
3
4
5
6
7
8
9
10
十一
12
13
14
15
16
17
18
19
20
21
22
2. 3
24
25
26
27
28
29
30
31
32
33
#string_to_hex_utf8.py

からブランチ輸入literal_eval

NS = '0xAAA'



#文字列を整数に変換します

convert_str=literal_eval((NS)。



#convert_strの値とタイプを出力します

印刷((convert_str)。

印刷(('タイプ' タイプ((convert_str)。)。



#convert_strをhex()メソッドに渡します

hex_value= 16進数((convert_str)。

印刷((hex_value)。



#値のタイプをチェックする

印刷((タイプ((hex_value)。)。

出力:

1
2
3
4
5
6
7
2730

タイプ <クラス 'int'>>

0xaaa

<クラス 'str'>>

2行目から10行目: astライブラリからメソッドliteral_eval()をインポートします。次に、プレフィックス0xの文字列を作成します。次に、その文字列をliteral_eval()メソッドに渡し、整数に変換しました。出力が整数形式であることを確認するために、行番号9に出力します。出力のタイプも出力します。これは整数であることを示しています。

13行目から17行目: 整数値を受け入れ、整数を16進文字列に変換する組み込みのhex(n)メソッドを知っています。そのため、文字列を整数に変換して、hex()メソッドに渡す必要があります。そのconvert_str(integer)値をhex()メソッドに渡し、hex_value、文字列16進数を取得しました。その変換された16進値を出力します。変換された16進値の型も出力します。これは、それが文字列の16進型であることを示しています。

エラー例外(TypeError):

文字列を16進文字列に変換しているときに、エラーが発生することがあります。その背後にある理由は、hex()メソッドがパラメーターとして整数値のみを受け入れるためです。

1
2
3
4
5
6
7
string_hex= 「0xFF」



hex_output= 16進数((string_hex)。

印刷((hex_output)。

出力:

1
TypeError'str' 物体解釈できないなので整数

結論:

そのため、文字列を16進小文字の文字列に変換するさまざまな方法を見てきました。 hex()メソッドは、その使いやすさから非常に人気があります。ただし、プレフィックス0xを使用せずに文字列を変換したい場合があるため、その場合は、記事ですでに説明したように、bytes encode()メソッドを使用できます。

この記事のコードは、以下のgithubリンクから入手できます。

https://github.com/shekharpandey89/string-to-hex-conversion