Sträng till hexadecimal i Python

String Hexadecimal Python



Hexadecimal har en bas på 16, och vi kan representera en sträng i hexadecimalt format med prefixet 0x.

Vi kan konvertera strängen till hexadecimal med följande metoder:







  1. Använda hex (n) -metoden
  2. Använda metoden ()
  3. Med metoden literal_eval ()

Metod 1: Använda hex ()

Vi kan konvertera strängen till hexadecimal med hex () -metoden. Metoden hex () accepterar parametern i heltal, och för det först måste vi konvertera strängen till ett heltal och sedan överföra det värdet till hex () -metoden enligt nedan:



Exempel: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
elva
12
13
14
femton
16
17
18
19
tjugo
tjugoett
# string_to_hex.py

sid = '245FC'

# vidarebefordra str till int () för att konvertera den till base16 int

bas16INT= int(sid, 16)

# skriv ut den konverterade strängen till base16 hexadecimalt int -värde

skriva ut('värde',bas16INT)

skriva ut('värde',typ(bas16INT))

hex_value= hex(bas16INT)

skriva ut(hex_value)

# chcking typen av värdet

skriva ut(typ(hex_value))

Produktion:

1
2
3
4
5
6
7
värde148988

värde<klass 'int'>

0x245fc

<klass 'str'>

Rad 3: Vi skapade en sträng för demoen.

Rad 6: Vi skickar den strängen till metoden int () med basen 16. Nu kommer denna int () -metod att omvandla strängen till det hexadecimala heltalet.



Rad 9: Vi skriver ut värdet som vi får efter att ha konverterat strängen till heltal hexadecimal.





Rad 10: Vi skriver också ut värdetypen för att bekräfta att strängen nu är i form av ett heltal.

Rad 12: Vi vet att den inbyggda hex (n) -metoden accepterar heltalets värde och konverterar heltalet till den hexadecimala strängen. Det är därför vi måste konvertera strängen till ett heltal för att överföra den till hex () -metoden. Vi skickade det bas16INT -värdet till hex () -metoden och fick hex_value, strängen hexadecimal.



Rad 13: Vi skriver ut det konverterade hexadecimala värdet.

Rad 16: Vi skriver ut typen av det konverterade hexadecimala värdet, vilket visar i utdata att det är en strängtyp.

Så nu konverterade vi strängen till ett hexadecimalt värde.

Metod 2: Konvertera strängen till hexadecimal med kodningen ()

Vi kan också konvertera den normala strängen till en hexadecimal sträng som inte har något hexadecimaltecken. För det måste vi konvertera strängen till byte med hjälp av metodkoden (), och sedan kan vi konvertera strängen till hexadecimal enligt nedan:

1
2
3
4
5
6
7
8
9
10
elva
12
13
14
femton
16
17
18
19
tjugo
tjugoett
22
2. 3
24
25
# string_to_hex_utf8.py



# konvertera strängen till byte

sid= 'linuxhint'.koda('utf-8')



# skriv ut den konverterade strängen till byte

skriva ut(sid)



# konvertera strängbyte till den hexadecimala strängen

hex_str= sid.hex()



# skriv ut den konverterade hexadecimala värdetypen

skriva ut(typ(hex_str))

Produktion:

1
2
3
b'linuxhint'

<klass 'str'>

Rad 4 till 7: Vi skapade en sträng som inte har något hexadecimalt tecken. Och konvertera sedan dessa strängar till byte med metoden (). Och sedan skriver vi ut de byte, som vi kan se på utgångsnumret 1.

Rad 10 till 13: Vi kallar hex () -metoden med hjälp av punktoperatorn, och nu konverteras byte till det hexadecimala strängvärde vi krävde. För att bekräfta typen av resultatsträngen skriver vi bara ut radnummer 13, och utmatningen visar att den är i en sträng hexadecimal typ.

Metod 3. Använda metoden ast.literal_eval ()

Vi kan också konvertera strängen till ett heltal med hjälp av ast biblioteksmetoden literal_eval. Denna metod konverterar också strängen till ett heltal för att använda hex () -metoden för att konvertera strängen till hexadecimal sträng. Men den här metoden accepterar bara 0x prefixstecken.

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

frångrenimporterabokstavligt_eval

sid = '0xAAA'



# konvertera strängen till heltalet

convert_str=bokstavligt_eval(sid)



# skriv ut värdet och typen av convert_str

skriva ut(convert_str)

skriva ut('typ', typ(convert_str))



# skicka convert_str till hex () -metoden

hex_value= hex(convert_str)

skriva ut(hex_value)



# chcking typen av värdet

skriva ut(typ(hex_value))

Produktion:

1
2
3
4
5
6
7
2730

typ <klass 'int'>

0xaaa

<klass 'str'>

Rad 2 till 10: Vi importerar metoden literal_eval () från ast -biblioteket. Sedan skapar vi en sträng med prefixet 0x. Sedan skickade vi den strängen till metoden literal_eval () och konverterade den till heltalet. För att bekräfta att utmatningen är i heltal, skriver vi ut den på rad 9. Vi skriver också ut typen av utdata, som visar att det är ett heltal.

Linje 13 till 17: Vi känner till den inbyggda hex (n) -metoden som accepterar heltalets värde och konverterar heltalet till den hexadecimala strängen. Det är därför vi måste konvertera strängen till ett heltal för att överföra den till hex () -metoden. Vi skickade det convert_str (heltalet) värdet till hex () metoden och fick hex_value, sträng hexadecimal. Vi skriver ut det konverterade hexadecimala värdet. Vi skriver också ut typen av det konverterade hexadecimala värdet, vilket visar att det är en sträng hexadecimal typ.

Felundantag (TypeError):

Ibland får vi fel när strängen konverteras till en hexadecimal sträng. Orsaken bakom det är hex () -metoden accepterar endast heltalet som en parameter.

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



hex_output= hex(string_hex)

skriva ut(hex_output)

Produktion:

1
Skrivfel:'str' objektkan inte tolkassomett heltal

Slutsats:

Så vi har sett olika metoder för att konvertera strängen till en hexadecimal liten sträng. Hex () -metoden är mycket populär på grund av dess enkla användning. Men ibland vill vi konvertera strängen utan att använda prefixet 0x, så i så fall kan vi använda metoden byte -kodning (), som vi redan har sett i artikeln.

Koden för denna artikel är tillgänglig på github -länken nedan:

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