Niz u heksadecimalnom u Pythonu

String Hexadecimal Python



Heksadecimalna baza ima 16, a niz možemo prikazati u heksadecimalnom formatu pomoću prefiksa 0x.

Niz možemo pretvoriti u heksadecimalni pomoću sljedećih metoda:







  1. Korištenjem hex (n) metode
  2. Korištenjem metode encode ()
  3. Upotrebom metode literal_eval ()

Metoda 1: Korištenje hex ()

Niz možemo pretvoriti u heksadecimalni pomoću hex () metode. Metoda hex () prihvaća parametar u obliku cijelog broja, a za to prvo moramo pretvoriti niz u cijeli broj, a zatim proslijediti tu vrijednost u metodu hex () kao što je prikazano u nastavku:



Primjer: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
jedanaest
12
13
14
petnaest
16
17
18
19
dvadeset
dvadeset i jedan
# string_to_hex.py

str = '245FC'

# proslijedi str u int () da ga pretvori u base16 int

baza16INT= int(str, 16)

# ispišite pretvoreni niz u heksadecimalnu int vrijednost base16

ispisati('vrijednost',baza16INT)

ispisati('vrijednost',tip(baza16INT))

hex_value= šesterokutni(baza16INT)

ispisati(hex_value)

# provjera vrste vrijednosti

ispisati(tip(hex_value))

Izlaz:

1
2
3
4
5
6
7
vrijednost148988

vrijednost<razred 'int'>

0x245fc

<razred 'str'>

3. redak: Stvorili smo niz za demonstraciju.

Red 6: Taj niz prosljeđujemo int () metodi s bazom 16. Sada će ova int () metoda pretvoriti niz u heksadecimalnu cijelu vrijednost.



Redak 9: Ispisujemo vrijednost koju dobijemo nakon pretvaranja niza u heksadecimalni cijeli broj.





Red 10: Također ispisujemo vrstu vrijednosti kako bismo potvrdili da je niz sada u obliku cijelog broja.

Redak 12: Znamo da ugrađena hex (n) metoda prihvaća cijelu vrijednost pretvarajući cijeli broj u heksadecimalni niz. Zato moramo pretvoriti niz u cijeli broj da bismo ga proslijedili u hex () metodu. Tu vrijednost base16INT proslijedili smo metodi hex () i dobili hexadecimalnu vrijednost hex_value, string.



Redak 13: Ispisujemo tu pretvorenu heksadecimalnu vrijednost.

Redak 16: Ispisujemo vrstu pretvorene heksadecimalne vrijednosti, koja u ispisu pokazuje da se radi o vrsti niza.

Dakle, sada smo pretvorili niz u heksadecimalnu vrijednost.

Metoda 2: Pretvorite niz u heksadecimalni pomoću encode ()

Također možemo pretvoriti normalni niz u heksadecimalni niz koji nema heksadecimalni znak. Za to moramo pretvoriti niz u bajt pomoću metode encode (), a zatim možemo pretvoriti niz u heksadecimalni kao što je prikazano u nastavku:

1
2
3
4
5
6
7
8
9
10
jedanaest
12
13
14
petnaest
16
17
18
19
dvadeset
dvadeset i jedan
22
2. 3
24
25
# string_to_hex_utf8.py



# pretvoriti niz u bajtove

str= 'linuxhint'.kodirati('utf-8')



# ispisati pretvoreni niz u bajte

ispisati(str)



# pretvoriti nizove bajtova u heksadecimalni niz

hex_str= str.šesterokutni()



# ispisati pretvorenu heksadecimalnu vrstu vrijednosti

ispisati(tip(hex_str))

Izlaz:

1
2
3
b'linuxhint'

<razred 'str'>

Redci 4 do 7: Napravili smo niz koji nema heksadecimalni znak. A zatim pretvorite te nizove u bajtove pomoću metode encode (). Zatim ispisujemo te bajtove koje možemo vidjeti u izlaznom retku broj 1.

Redci 10 do 13: Metodu hex () pozivamo pomoću točkastog operatora, a sada se bajtovi pretvaraju u heksadecimalnu vrijednost niza koja nam je potrebna. Kako bismo potvrdili vrstu niza rezultata, samo ispisujemo red broj 13, a izlaz pokazuje da je u nizu heksadecimalnog tipa.

Metoda 3. Korištenjem metode ast.literal_eval ()

Također možemo pretvoriti niz u cijeli broj pomoću metode biblioteke ast literal_eval. Ova metoda također pretvara niz u cijeli broj pomoću hex () metode za pretvaranje niza u heksadecimalni niz. Ali ova metoda prihvaća samo 0x znakove prefiksa.

1
2
3
4
5
6
7
8
9
10
jedanaest
12
13
14
petnaest
16
17
18
19
dvadeset
dvadeset i jedan
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

izpodružnicauvozliteral_eval

str = '0xAAA'



# pretvoriti niz u cijeli broj

pretvoriti_str=literal_eval(str)



# ispišite vrijednost i vrstu convert_str

ispisati(pretvoriti_str)

ispisati('tip', tip(pretvoriti_str))



# proslijediti convert_str u hex () metodu

hex_value= šesterokutni(pretvoriti_str)

ispisati(hex_value)



# provjera vrste vrijednosti

ispisati(tip(hex_value))

Izlaz:

1
2
3
4
5
6
7
2730

tip <razred 'int'>

0xaaa

<razred 'str'>

Redci 2 do 10: Uvozimo metodu literal_eval () iz biblioteke ast. Zatim stvaramo niz s prefiksom 0x. Zatim smo taj niz proslijedili metodi literal_eval () i pretvorili u cijeli broj. Kako bismo potvrdili da je izlaz u cjelobrojnom obliku, ispisujemo ga u red broj 9. Također ispisujemo vrstu izlaza koji pokazuje da je cijeli broj.

Redci 13 do 17: Znamo ugrađenu hex (n) metodu koja prihvaća cijelu vrijednost, pretvarajući cijeli broj u heksadecimalni niz. Zato moramo pretvoriti niz u cijeli broj da bismo ga proslijedili u hex () metodu. Tu vrijednost convert_str (cijeli broj) smo prenijeli u hex () metodu i dobili hexadecimalnu vrijednost hex_value, string. Ispisujemo tu pretvorenu heksadecimalnu vrijednost. Ispisujemo i vrstu pretvorene heksadecimalne vrijednosti, što pokazuje da se radi o heksadecimalnoj vrsti niza.

Izuzetak pogreške (TypeError):

Ponekad ćemo dobiti pogreške prilikom pretvaranja niza u heksadecimalni niz. Razlog tome je hex () metoda koja prihvaća samo cijelu vrijednost kao parametar.

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



hex_output= šesterokutni(string_hex)

ispisati(hex_output)

Izlaz:

1
TypeError:'str' objektne može se tumačitikaocijeli broj

Zaključak:

Dakle, vidjeli smo različite metode za pretvaranje niza u heksadecimalni mali niz. Metoda hex () vrlo je popularna zbog svoje jednostavne uporabe. No, ponekad želimo pretvoriti niz bez korištenja prefiksa 0x, pa u tom slučaju možemo upotrijebiti metodu bytes encode (), kao što smo već vidjeli u članku.

Kod ovog članka dostupan je na donjoj github poveznici:

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