Eilutė į šešioliktainį „Python“

String Hexadecimal Python



Šešioliktainį skaičių sudaro 16, o mes galime pavaizduoti eilutę šešioliktainiu formatu, naudodami priešdėlį 0x.

Mes galime konvertuoti eilutę į šešioliktainį šiais būdais:







  1. Naudojant šešiakampį (n) metodą
  2. Naudojant kodavimo () metodą
  3. Naudojant literal_eval () metodą

1 metodas: šešiakampio () naudojimas

Mes galime konvertuoti eilutę į šešioliktainį, naudodami hex () metodą. Metodas „hex“ () priima parametrą sveikojo skaičiaus pavidalu, todėl pirmiausia turime konvertuoti eilutę į sveiką skaičių ir tada perduoti šią reikšmę „hex“ () metodui, kaip parodyta žemiau:



Pavyzdys: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
vienuolika
12
13
14
penkiolika
16
17
18
19
dvidešimt
dvidešimt vienas
# string_to_hex.py

p = „245FC“

# perduokite str int (), kad jį paverstų base16 int

base16INT= tarpt(p, 16)

# atspausdinkite konvertuotą eilutę į bazės šešioliktainę int reikšmę

spausdinti('vertė',base16INT)

spausdinti('vertė',tipo(base16INT))

hex_value= šešiakampis(base16INT)

spausdinti(hex_value)

# tikrinant vertės tipą

spausdinti(tipo(hex_value))

Išėjimas:

1
2
3
4
5
6
7
vertės148988

vertės<klasė 'int'>

0x245fc

<klasė 'str'>

3 eilutė: mes sukūrėme demonstracinę eilutę.

6 eilutė: Šią eilutę perduodame int () metodui su baze 16. Dabar šis int () metodas konvertuos eilutę į šešioliktainį sveiką skaičių.



9 eilutė: Spausdiname vertę, kurią gauname konvertavę eilutę į šešioliktainį skaičių.





10 eilutė: Taip pat atspausdiname vertės tipą, kad patvirtintume, jog eilutė dabar yra sveikojo skaičiaus.

12 eilutė: Mes žinome, kad integruotasis šešiakampis (n) metodas priima sveikojo skaičiaus vertę, konvertuojant sveikąjį skaičių į šešioliktainę eilutę. Štai kodėl mes turime konvertuoti eilutę į sveiką skaičių, kad galėtume perduoti jį į hex () metodą. Šią „base16INT“ reikšmę perdavėme „hex“ () metodui ir gavome šešioliktainę eilutę „hex_value“.



13 eilutė: Spausdiname tą konvertuotą šešioliktainę reikšmę.

16 eilutė: Spausdiname konvertuotos šešioliktainės vertės tipą, kuris išvestyje rodo, kad tai yra eilutės tipas.

Taigi, dabar mes konvertavome eilutę į šešioliktainę reikšmę.

2 metodas: konvertuokite eilutę į šešioliktainį, naudodami kodą ()

Įprastą eilutę taip pat galime konvertuoti į šešioliktainę eilutę, kuri neturi šešioliktainio simbolio. Norėdami tai padaryti, turime konvertuoti eilutę į baitą, naudodami metodą encode (), ir tada galime konvertuoti eilutę į šešioliktainį, kaip parodyta žemiau:

1
2
3
4
5
6
7
8
9
10
vienuolika
12
13
14
penkiolika
16
17
18
19
dvidešimt
dvidešimt vienas
22
2. 3
24
25
# string_to_hex_utf8.py



# konvertuoti eilutę į baitus

p= 'linuxhint'.koduoti(„utf-8“)



# atsispausdinkite konvertuotą eilutę į baitus

spausdinti(p)



# konvertuoti eilutės baitus į šešioliktainę eilutę

hex_str= p.šešiakampis()



# atspausdinkite konvertuotą šešioliktainį reikšmės tipą

spausdinti(tipo(hex_str))

Išėjimas:

1
2
3
b'linuxhint'

<klasė 'str'>

4–7 eilutės: Mes sukūrėme eilutę, kuri neturi šešioliktainio simbolio. Tada konvertuokite šias eilutes į baitus, naudodami kodavimo () metodą. Ir tada mes atspausdiname tuos baitus, kuriuos galime pamatyti išvesties eilutės numeryje 1.

10–13 eilutės: Mes vadiname hex () metodą naudodami taško operatorių, o dabar baitai konvertuojami į šešioliktainę eilutės reikšmę, kurios mums reikia. Norėdami patvirtinti rezultato eilutės tipą, mes tiesiog atspausdiname eilutės numerį 13, o išvestis rodo, kad ji yra šešioliktainio tipo.

3 metodas. Naudojant ast.literal_eval () metodą

Mes taip pat galime konvertuoti eilutę į sveiką skaičių naudodami ast bibliotekos metodą literal_eval. Šis metodas taip pat konvertuoja eilutę į sveiką skaičių, kad hex () metodu konvertuotų eilutę į šešioliktainę eilutę. Tačiau šis metodas priima tik 0x priešdėlio simbolius.

1
2
3
4
5
6
7
8
9
10
vienuolika
12
13
14
penkiolika
16
17
18
19
dvidešimt
dvidešimt vienas
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

nuošakaimportasliteral_eval

p = „0xAAA“



# konvertuokite eilutę į sveikąjį skaičių

konvertuoti_str=literal_eval(p)



# atspausdinkite konvertavimo_str. reikšmę ir tipą

spausdinti(konvertuoti_str)

spausdinti('tipas', tipo(konvertuoti_str))



# perduokite konvertuoti_str į hex () metodą

hex_value= šešiakampis(konvertuoti_str)

spausdinti(hex_value)



# tikrinant vertės tipą

spausdinti(tipo(hex_value))

Išėjimas:

1
2
3
4
5
6
7
2730

tipo <klasė 'int'>

0xaaa

<klasė 'str'>

2–10 eilutės: Importuojame metodą literal_eval () iš ast bibliotekos. Tada sukuriame eilutę su priešdėliu 0x. Tada mes perkėlėme šią eilutę į literal_eval () metodą ir konvertavome į sveikąjį skaičių. Norėdami patvirtinti, kad išvestis yra sveikojo skaičiaus, atspausdiname ją eilutės numeriu 9. Taip pat spausdiname išvesties tipą, kuris rodo, kad tai yra sveikasis skaičius.

13–17 eilutės: Mes žinome integruotą šešiabriaunį (n) metodą, kuris priima sveikojo skaičiaus vertę ir konvertuoja sveikąjį skaičių į šešioliktainę eilutę. Štai kodėl mes turime konvertuoti eilutę į sveiką skaičių, kad galėtume perduoti jį į hex () metodą. Mes perdavėme šią konvertavimo_str (sveiką skaičių) reikšmę į hex () metodą ir gavome šešioliktainę šešioliktainę reikšmę. Spausdiname tą konvertuotą šešioliktainę reikšmę. Mes taip pat atspausdiname konvertuotos šešioliktainės vertės tipą, o tai rodo, kad tai yra šešioliktainis tipas.

Klaidos išimtis (tipo klaida):

Kartais konvertuodami eilutę į šešioliktainę eilutę gausime klaidų. Priežastis yra hex () metodas kaip sveiką skaičių priima tik kaip parametrą.

1
2
3
4
5
6
7
string_hex= „0xFF“



hex_output= šešiakampis(string_hex)

spausdinti(hex_output)

Išėjimas:

1
Tipo klaida:'str' objektasnegalima interpretuotikaipsveikasis skaičius

Išvada:

Taigi, mes matėme skirtingus būdus, kaip eilutę paversti šešioliktaine mažąja eilute. Šešiakampis () metodas yra labai populiarus, nes jį lengva naudoti. Tačiau kartais norime konvertuoti eilutę nenaudodami priešdėlio 0x, todėl tokiu atveju galime naudoti baitų kodavimo () metodą, kaip jau matėme straipsnyje.

Šio straipsnio kodą galite rasti žemiau esančioje „Github“ nuorodoje:

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