Chaîne en hexadécimal en Python

String Hexadecimal Python



L'hexadécimal a une base de 16, et nous pouvons représenter une chaîne au format hexadécimal en utilisant le préfixe 0x.

Nous pouvons convertir la chaîne en hexadécimal en utilisant les méthodes suivantes :







  1. Utilisation de la méthode hex(n)
  2. Utilisation de la méthode encode()
  3. Utilisation de la méthode literal_eval()

Méthode 1 : Utilisation de l'hexagone ()

Nous pouvons convertir la chaîne en hexadécimal en utilisant la méthode hex (). La méthode hex () accepte le paramètre sous forme d'entier, et pour cela, nous devons d'abord convertir la chaîne en un entier, puis passer cette valeur à la méthode hex () comme indiqué ci-dessous :



Exemple : string_to_hex.py

1
2
3
4
5
6
7
8
9
dix
Onze
12
13
14
quinze
16
17
18
19
vingt
vingt-et-un
# string_to_hex.py

p = '245FC'

# passer le str au int() pour le convertir en base16 int

base16INT= entier(p, 16)

# affiche la chaîne convertie en valeur int hexadécimale base16

imprimer('valeur',base16INT)

imprimer('valeur',taper(base16INT))

valeur_hex= hexagone(base16INT)

imprimer(valeur_hex)

# vérification du type de la valeur

imprimer(taper(valeur_hex))

Sortir:

1
2
3
4
5
6
7
valeur148988

valeur<classer 'int'>

0x245fc

<classer 'str'>

Ligne 3 : Nous avons créé une chaîne pour la démo.

Ligne 6 : Nous passons cette chaîne à la méthode int () avec la base 16. Maintenant, cette méthode int () convertira la chaîne en valeur entière hexadécimale.



Ligne 9 : Nous imprimons la valeur que nous obtenons après avoir converti la chaîne en entier hexadécimal.





Ligne 10 : Nous imprimons également le type de valeur pour confirmer que la chaîne est maintenant sous la forme d'un entier.

Ligne 12 : Nous savons que la méthode hex(n) intégrée accepte la valeur entière, convertissant l'entier en chaîne hexadécimale. C'est pourquoi nous devons convertir la chaîne en un entier pour la passer à la méthode hex (). Nous avons transmis cette valeur base16INT à la méthode hex() et obtenu la valeur hex_value, chaîne hexadécimale.



Ligne 13 : Nous imprimons cette valeur hexadécimale convertie.

Ligne 16 : Nous imprimons le type de la valeur hexadécimale convertie, ce qui indique dans la sortie qu'il s'agit d'un type de chaîne.

Donc, maintenant nous avons converti la chaîne en une valeur hexadécimale.

Méthode 2 : convertir la chaîne en hexadécimal à l'aide de encode ()

Nous pouvons également convertir la chaîne normale en une chaîne hexadécimale qui n'a aucun caractère hexadécimal. Pour cela, nous devons convertir la chaîne en octet à l'aide de la méthode encode(), puis nous pouvons convertir la chaîne en hexadécimal comme indiqué ci-dessous :

1
2
3
4
5
6
7
8
9
dix
Onze
12
13
14
quinze
16
17
18
19
vingt
vingt-et-un
22
2. 3
24
25
# string_to_hex_utf8.py



# convertit la chaîne en octets

p= 'linuxhint'.encoder('utf-8')



# affiche la chaîne convertie en octets

imprimer(p)



# convertit les octets de la chaîne en chaîne hexadécimale

hex_str= p.hexagone()



# affiche le type de valeur hexadécimale converti

imprimer(taper(hex_str))

Sortir:

1
2
3
b'linuxhint'

<classer 'str'>

Ligne 4 à 7 : Nous avons créé une chaîne qui n'a aucun caractère hexadécimal. Et puis convertissez ces chaînes en octets à l'aide de la méthode encode (). Et puis, nous imprimons ces octets, que nous pouvons voir dans la ligne de sortie numéro 1.

Ligne 10 à 13 : Nous appelons la méthode hex() à l'aide de l'opérateur point, et maintenant les octets sont convertis en la valeur de chaîne hexadécimale dont nous avions besoin. Pour confirmer le type de la chaîne de résultat, nous imprimons simplement le numéro de ligne 13, et la sortie montre qu'il s'agit d'une chaîne de type hexadécimal.

Méthode 3. Utilisation de la méthode ast.literal_eval ()

Nous pouvons également convertir la chaîne en un entier en utilisant la méthode de la bibliothèque ast literal_eval. Cette méthode convertit également la chaîne en un entier pour utiliser la méthode hex () pour convertir la chaîne en chaîne hexadécimale. Mais cette méthode n'accepte que les caractères de préfixe 0x.

1
2
3
4
5
6
7
8
9
dix
Onze
12
13
14
quinze
16
17
18
19
vingt
vingt-et-un
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

debrancheimporterliteral_eval

p = '0xAAA'



# convertit la chaîne en entier

convert_str=literal_eval(p)



# affiche la valeur et le type de convert_str

imprimer(convert_str)

imprimer('taper', taper(convert_str))



# passer le convert_str à la méthode hex ()

valeur_hex= hexagone(convert_str)

imprimer(valeur_hex)



# vérification du type de la valeur

imprimer(taper(valeur_hex))

Sortir:

1
2
3
4
5
6
7
2730

taper <classer 'int'>

0xaaa

<classer 'str'>

Ligne 2 à 10 : Nous importons la méthode literal_eval() de la bibliothèque ast. Ensuite, nous créons une chaîne avec le préfixe 0x. Ensuite, nous avons passé cette chaîne à la méthode literal_eval() et l'avons convertie en entier. Pour confirmer que la sortie est sous forme d'entier, nous l'imprimons à la ligne numéro 9. Nous imprimons également le type de la sortie, ce qui indique qu'il s'agit d'un entier.

Ligne 13 à 17 : Nous connaissons la méthode hex(n) intégrée qui accepte la valeur entière, convertissant l'entier en chaîne hexadécimale. C'est pourquoi nous devons convertir la chaîne en un entier pour la passer à la méthode hex (). Nous avons passé cette valeur convert_str(integer) à la méthode hex() et obtenu la hex_value, chaîne hexadécimale. Nous imprimons cette valeur hexadécimale convertie. Nous imprimons également le type de la valeur hexadécimale convertie, ce qui montre qu'il s'agit d'un type hexadécimal de chaîne.

Exception d'erreur (TypeError) :

Parfois, nous obtiendrons des erreurs lors de la conversion de la chaîne en une chaîne hexadécimale. La raison en est que la méthode hex () n'accepte que la valeur entière en tant que paramètre.

1
2
3
4
5
6
7
string_hex= '0xFF'



sortie_hex= hexagone(string_hex)

imprimer(sortie_hex)

Sortir:

1
Erreur-type:'str' objetne peut pas être interprétécommeun nombre entier

Conclusion:

Ainsi, nous avons vu différentes méthodes pour convertir la chaîne en une chaîne minuscule hexadécimale. La méthode hex() est très populaire en raison de sa facilité d'utilisation. Mais parfois, nous voulons convertir la chaîne sans utiliser le préfixe 0x, donc dans ce cas, nous pouvons utiliser la méthode bytes encode(), comme nous l'avons déjà vu dans l'article.

Le code de cet article est disponible sur le lien github ci-dessous :

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