Streng til heksadesimal i Python

String Hexadecimal Python



Heksadesimal har en base på 16, og vi kan representere en streng i heksadesimalt format ved hjelp av prefikset 0x.

Vi kan konvertere strengen til heksadesimal ved å bruke følgende metoder:







  1. Ved hjelp av hex (n) -metoden
  2. Bruker metoden ()
  3. Bruker metoden literal_eval ()

Metode 1: Bruk hex ()

Vi kan konvertere strengen til heksadesimal ved hjelp av hex () -metoden. Hex () metoden godtar parameteren i heltall form, og for det først må vi konvertere strengen til et helt tall og deretter overføre denne verdien til hex () metoden som vist nedenfor:



Eksempel: string_to_hex.py

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

s. s = '245FC'

# pass str til int () for å konvertere den til base16 int

base16INT= int(s. s, 16)

# skriv ut den konverterte strengen til base16 heksadesimal int -verdi

skrive ut('verdi',base16INT)

skrive ut('verdi',type(base16INT))

hex_value= hex(base16INT)

skrive ut(hex_value)

# hakker verdien av verdien

skrive ut(type(hex_value))

Produksjon:

1
2
3
4
5
6
7
verdi148988

verdi<klasse 'int'>

0x245fc

<klasse 'str'>

Linje 3: Vi opprettet en streng for demoen.

Linje 6: Vi sender den strengen til int () -metoden med basen 16. Nå vil denne int () metoden konvertere strengen til det heksadesimale heltallsverdien.



Linje 9: Vi skriver ut verdien vi får etter å ha konvertert strengen til heltall heksadesimalt.





Linje 10: Vi skriver også ut verditypen for å bekrefte at strengen nå er i form av et heltall.

Linje 12: Vi vet at den innebygde hex (n) -metoden godtar heltallsverdien, og konverterer heltallet til den heksadesimale strengen. Derfor må vi konvertere strengen til et heltall for å overføre den til hex () metoden. Vi passerte denne base16INT -verdien til hex () -metoden og fikk hex_value, strengen heksadesimal.



Linje 13: Vi skriver ut den konverterte heksadesimale verdien.

Linje 16: Vi skriver ut typen av den konverterte heksadesimale verdien, som viser i utdata at det er en strengtype.

Så nå konverterte vi strengen til en heksadesimal verdi.

Metode 2: Konverter strengen til heksadesimal ved hjelp av koden ()

Vi kan også konvertere den normale strengen til en heksadesimal streng som ikke har noe heksadesimalt tegn. For det må vi konvertere strengen til byte ved hjelp av metoden koding (), og deretter kan vi konvertere strengen til heksadesimal som vist nedenfor:

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



# konverter strengen til byte

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



# skriv ut den konverterte strengen til byte

skrive ut(s. s)



# konvertere strengbyte til den heksadesimale strengen

hex_str= s. s.hex()



# skriv ut den konverterte heksadesimale verditypen

skrive ut(type(hex_str))

Produksjon:

1
2
3
b'linuxhint'

<klasse 'str'>

Linje 4 til 7: Vi opprettet en streng som ikke har noe heksadesimalt tegn. Og konverter deretter disse strengene til byte ved hjelp av metoden (). Og så skriver vi ut byte, som vi kan se på utgangslinjen nummer 1.

Linje 10 til 13: Vi kaller hex () -metoden ved å bruke punktoperatoren, og nå blir byte konvertert til den heksadesimale strengverdien vi trengte. For å bekrefte typen av resultatstrengen skriver vi bare ut linjenummer 13, og utgangen viser at den er i en heksadesimaltype.

Metode 3. Bruke metoden ast.literal_eval ()

Vi kan også konvertere strengen til et heltall ved å bruke ast -biblioteksmetoden literal_eval. Denne metoden konverterer også strengen til et heltall for å bruke hex () -metoden for å konvertere strengen til heksadesimal streng. Men denne metoden godtar bare 0x prefiks tegn.

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

fragrenimportbokstavelig_eval

s. s = '0xAAA'



# konverter strengen til heltallet

convert_str=bokstavelig_eval(s. s)



# skriv ut verdien og typen på convert_str

skrive ut(convert_str)

skrive ut('type', type(convert_str))



# send convert_str til hex () metoden

hex_value= hex(convert_str)

skrive ut(hex_value)



# hakker verdien av verdien

skrive ut(type(hex_value))

Produksjon:

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. Deretter lager vi en streng med prefikset 0x. Deretter sendte vi den strengen til metoden literal_eval () og konverterte den til heltallet. For å bekrefte at utgangen er i heltall, skriver vi den ut på linje 9. Vi skriver også ut typen utgang, som viser at det er et heltall.

Linje 13 til 17: Vi kjenner den innebygde hex (n) -metoden som godtar heltallsverdien, og konverterer heltallet til den heksadesimale strengen. Derfor må vi konvertere strengen til et heltall for å overføre den til hex () metoden. Vi passerte den convert_str (heltall) verdien til hex () metoden og fikk hex_value, strengen heksadesimal. Vi skriver ut den konverterte heksadesimale verdien. Vi skriver også ut typen av den konverterte heksadesimale verdien, som viser at den er en heksadesimal type.

Feil Unntak (TypeError):

Noen ganger får vi feil mens vi konverterer strengen til en heksadesimal streng. Årsaken bak det er hex () -metoden godtar bare heltallsverdien som en parameter.

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



hex_output= hex(string_hex)

skrive ut(hex_output)

Produksjon:

1
TypeError:'str' gjenstandkan ikke tolkessomet heltall

Konklusjon:

Så vi har sett forskjellige metoder for å konvertere strengen til en heksadesimal liten streng. Hex () -metoden er veldig populær på grunn av den enkle bruken. Men noen ganger ønsker vi å konvertere strengen uten å bruke prefikset 0x, så i så fall kan vi bruke byte -kode () -metoden, som vi allerede har sett i artikkelen.

Koden til denne artikkelen er tilgjengelig på github -lenken nedenfor:

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