String til hexadecimal i Python

String Hexadecimal Python



Hexadecimal har en base på 16, og vi kan repræsentere en streng i hexadecimalt format ved hjælp af præfikset 0x.

Vi kan konvertere strengen til hexadecimal ved hjælp af følgende metoder:







  1. Ved hjælp af hex (n) metoden
  2. Brug af metoden ()
  3. Brug af metoden literal_eval ()

Metode 1: Brug af hex ()

Vi kan konvertere strengen til hexadecimal ved hjælp af hex () metoden. Hex () metoden accepterer parameteren i heltal form, og for det første skal vi konvertere strengen til et helt tal og derefter videregive denne værdi til hex () metoden som vist nedenfor:



Eksempel: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
elleve
12
13
14
femten
16
17
18
19
tyve
enogtyve
# string_to_hex.py

s = '245FC'

# send str til int () for at konvertere den til base16 int

base16INT= int(s, 16)

# udskriv den konverterede streng til base16 hexadecimal int -værdi

Print('værdi',base16INT)

Print('værdi',type(base16INT))

hex_værdi= hex(base16INT)

Print(hex_værdi)

# chcking typen af ​​værdien

Print(type(hex_værdi))

Produktion:

1
2
3
4
5
6
7
værdi148988

værdi<klasse 'int'>

0x245fc

<klasse 'str'>

Linje 3: Vi oprettede en streng til demoen.

Linje 6: Vi sender denne streng til int () metoden med basen 16. Nu vil denne int () metode konvertere strengen til den hexadecimale heltalværdi.



Linje 9: Vi udskriver den værdi, vi får efter konvertering af strengen til heltal hexadecimal.





Linje 10: Vi udskriver også værditypen for at bekræfte, at strengen nu er i form af et helt tal.

Linje 12: Vi ved, at den indbyggede hex (n) -metode accepterer heltalets værdi og konverterer heltalet til den hexadecimale streng. Derfor er vi nødt til at konvertere strengen til et helt tal for at videregive den til hex () metoden. Vi overførte denne base16INT -værdi til hex () -metoden og fik hex_value, string hexadecimal.



Linje 13: Vi udskriver den konverterede hexadecimale værdi.

Linje 16: Vi udskriver typen af ​​den konverterede hexadecimale værdi, som viser i output, at det er en strengtype.

Så nu konverterede vi strengen til en hexadecimal værdi.

Metode 2: Konverter strengen til hexadecimal ved hjælp af koden ()

Vi kan også konvertere den normale streng til en hexadecimal streng, der ikke har nogen hexadecimal karakter. Til det skal vi konvertere strengen til byte ved hjælp af metoden encod (), og derefter kan vi konvertere strengen til hexadecimal som vist nedenfor:

1
2
3
4
5
6
7
8
9
10
elleve
12
13
14
femten
16
17
18
19
tyve
enogtyve
22
2. 3
24
25
# string_to_hex_utf8.py



# konverter strengen til bytes

s= 'linuxhint'.kode('utf-8')



# udskriv den konverterede streng til bytes

Print(s)



# konverter strengbytes til den hexadecimale streng

hex_str= s.hex()



# udskriv den konverterede hexadecimale værditype

Print(type(hex_str))

Produktion:

1
2
3
b'linuxhint'

<klasse 'str'>

Linje 4 til 7: Vi oprettede en streng, der ikke har nogen hexadecimal karakter. Og konverter derefter disse strenge til bytes ved hjælp af metoden (). Og så udskriver vi de bytes, som vi kan se på outputlinjen nummer 1.

Linje 10 til 13: Vi kalder hex () metoden ved hjælp af punktoperatoren, og nu konverteres bytes til den hexadecimale strengværdi, vi krævede. For at bekræfte typen af ​​resultatstrengen udskriver vi bare linjenummer 13, og output viser, at den er i en streng hexadecimal type.

Metode 3. Brug af met.literal_eval () metode

Vi kan også konvertere strengen til et helt tal ved hjælp af ast -biblioteksmetoden literal_eval. Denne metode konverterer også strengen til et helt tal for at bruge hex () metoden til at konvertere strengen til hexadecimal streng. Men denne metode accepterer kun 0x præfiks tegn.

1
2
3
4
5
6
7
8
9
10
elleve
12
13
14
femten
16
17
18
19
tyve
enogtyve
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

fraafdelingimporterebogstaveligt_eval

s = '0xAAA'



# konverter strengen til heltalet

convert_str=bogstaveligt_eval(s)



# udskriv værdien og typen af ​​convert_str

Print(convert_str)

Print('type', type(convert_str))



# send convert_str til hex () metoden

hex_værdi= hex(convert_str)

Print(hex_værdi)



# chcking typen af ​​værdien

Print(type(hex_værdi))

Produktion:

1
2
3
4
5
6
7
2730

type <klasse 'int'>

0xaaa

<klasse 'str'>

Linje 2 til 10: Vi importerer metoden letteral_eval () fra ast -biblioteket. Derefter opretter vi en streng med præfikset 0x. Derefter overførte vi denne streng til metoden literal_eval () og konverterede den til heltalet. For at bekræfte, at output er i heltalsform, udskriver vi det på linje 9. Vi udskriver også outputtypen, som viser, at det er et heltal.

Linje 13 til 17: Vi kender den indbyggede hex (n) -metode, der accepterer heltalets værdi, og konverterer heltalet til den hexadecimale streng. Derfor er vi nødt til at konvertere strengen til et helt tal for at videregive den til hex () metoden. Vi sendte denne convert_str (heltal) værdi til hex () metoden og fik hex_value, string hexadecimal. Vi udskriver den konverterede hexadecimale værdi. Vi udskriver også typen af ​​den konverterede hexadecimale værdi, hvilket viser, at det er en streng hexadecimal type.

Fejlundtagelse (TypeError):

Nogle gange får vi fejl under konvertering af strengen til en hexadecimal streng. Årsagen bag det er hex () -metoden accepterer kun heltalets værdi som en parameter.

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



hex_output= hex(string_hex)

Print(hex_output)

Produktion:

1
Type Fejl:'str' objektikke kan fortolkessomet helt tal

Konklusion:

Så vi har set forskellige metoder til at konvertere strengen til en hexadecimal lille streng. Hex () -metoden er meget populær på grund af dens lette brug. Men nogle gange vil vi konvertere strengen uden at bruge præfikset 0x, så i så fald kan vi bruge metoden bytes encod (), som vi allerede har set i artiklen.

Koden til denne artikel er tilgængelig på nedenstående github -link:

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