Š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:
- Naudojant šešiakampį (n) metodą
- Naudojant kodavimo () metodą
- 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: