Kuueteistkümnendarv on 16 ja me saame esitada stringi kuueteistkümnendsüsteemis, kasutades eesliidet 0x.
Saame stringi teisendada kuueteistkümnendiks, kasutades järgmisi meetodeid:
- Hex (n) meetodi kasutamine
- Encode () meetodi kasutamine
- Kasutades meetodit literal_eval ()
1. meetod: kuusnurga () kasutamine
Me saame stringi teisendada kuueteistkümnendiks, kasutades meetodit hex (). Hex () meetod aktsepteerib parameetrit täisarvuna ja selleks peame esmalt stringi täisarvuks teisendama ja seejärel selle väärtuse hex () meetodile edastama, nagu allpool näidatud:
Näide: string_to_hex.py
1 2 3 4 5 6 7 8 9 10 üksteist 12 13 14 viisteist 16 17 18 19 kakskümmend kakskümmend üks | # string_to_hex.py lk = '245FC' # edastage str int (), et muuta see base16 int base16INT= int(lk, 16) # printige teisendatud string base16 kuueteistkümnendsüsteemi väärtuseks printida('väärtus',base16INT) printida('väärtus',tüüpi(base16INT)) hex_value= kuuskant(base16INT) printida(hex_value) # väärtuse tüübi kontrollimine printida(tüüpi(hex_value)) |
Väljund:
1 2 3 4 5 6 7 | väärtus148988 väärtus<klassi 'int'> 0x245fc <klassi 'str'> |
3. rida: lõime demo jaoks stringi.
6. rida: Edastame selle stringi meetodile int () koos alusega 16. Nüüd teisendab see int () meetod stringi kuueteistkümnendarvuks.
9. rida: Trükime väärtuse, mille saame pärast stringi teisendamist täisarvuliseks kuueteistkümnendkohaks.
Rida 10: Prindime ka väärtuse tüübi, kinnitamaks, et string on nüüd täisarvu kujul.
Rida 12: Me teame, et sisseehitatud kuuskantmeetod (n) aktsepteerib täisarvu väärtust, teisendades täisarvu kuueteistkümnendiks. Sellepärast peame stringi täisarvuks teisendama, et see hex () meetodiks edastada. Edastasime selle base16INT väärtuse meetodile hex () ja saime hex_value, string hexadecimal.
Rida 13: Prindime selle teisendatud kuueteistkümnendsüsteemi väärtuse.
16. rida: Prindime teisendatud kuueteistkümnendsüsteemi väärtuse tüübi, mis näitab väljundis stringi tüüpi.
Niisiis, teisendasime stringi kuueteistkümnendsüsteemi väärtuseks.
Meetod: teisendage string kodeeringu () abil kuueteistkümnendsüsteemi
Võime ka tavalise stringi teisendada kuueteistkümnendiks, millel pole kuueteistkümnendmärki. Selleks peame stringi teisendama baidiks, kasutades meetodit encode (), ja seejärel saame stringi teisendada kuueteistkümnendiks, nagu allpool näidatud:
1 2 3 4 5 6 7 8 9 10 üksteist 12 13 14 viisteist 16 17 18 19 kakskümmend kakskümmend üks 22 2. 3 24 25 | # string_to_hex_utf8.py # teisenda string baitideks lk= 'linuxhint'.kodeerida('utf-8') # printige teisendatud string baitideks printida(lk) # teisendage stringi baidid kuueteistkümnendiks hex_str= lk.kuuskant() # printige teisendatud kuueteistkümnendsüsteemi väärtustüüp printida(tüüpi(hex_str)) |
Väljund:
1 2 3 | b'linuxhint' <klassi 'str'> |
Rida 4 kuni 7: Lõime stringi, millel pole kuueteistkümnendmärki. Seejärel teisendage need stringid baitideks, kasutades meetodit encode (). Ja siis prindime need baidid, mida näeme väljundrea numbril 1.
Rida 10 kuni 13: Me kutsume hex () meetodit punktoperaatori abil ja nüüd teisendatakse baidid kuueteistkümnendsüsteemi väärtuseks, mida me vajame. Tulemusstringi tüübi kinnitamiseks trükime lihtsalt rea numbri 13 ja väljund näitab, et see on stringi kuueteistkümnendsüsteemis.
Meetod 3. Ast.literal_eval () meetodi kasutamine
Samuti saame stringi täisarvuks teisendada, kasutades ast raamatukogu meetodit literal_eval. See meetod teisendab stringi ka täisarvuks, et kasutada hex () meetodit stringi teisendamiseks kuueteistkümnendiks. Kuid see meetod aktsepteerib ainult 0x eesliite märke.
1 2 3 4 5 6 7 8 9 10 üksteist 12 13 14 viisteist 16 17 18 19 kakskümmend kakskümmend üks 22 2. 3 24 25 26 27 28 29 30 31 32 33 | # string_to_hex_utf8.py alatesharuimportliteral_eval lk = '0xAAA' # teisenda string täisarvuks convert_str=literal_eval(lk) # prindi väärtus ja tüüp convert_str printida(convert_str) printida('tüüp', tüüpi(convert_str)) # edastage convert_str meetodile hex () hex_value= kuuskant(convert_str) printida(hex_value) # väärtuse tüübi kontrollimine printida(tüüpi(hex_value)) |
Väljund:
1 2 3 4 5 6 7 | 2730 tüüpi <klassi 'int'> 0xaaa <klassi 'str'> |
Rida 2 kuni 10: Impordime meetodi literal_eval () ast raamatukogust. Seejärel loome stringi eesliitega 0x. Seejärel edastasime selle stringi meetodile literal_eval () ja teisendasime selle täisarvuks. Kinnitamaks, et väljund on täisarvuline, prindime selle reale number 9. Samuti prindime väljundi tüübi, mis näitab, et see on täisarv.
Rida 13 kuni 17: Me teame sisseehitatud kuuskantmeetodit (n), mis võtab vastu täisarvu väärtuse, teisendades täisarvu kuueteistkümnendiks. Sellepärast peame stringi täisarvuks teisendama, et see hex () meetodiks edastada. Edastasime selle väärtuse convert_str (täisarv) hex () meetodile ja saime hex_value, string hexadecimal. Prindime selle teisendatud kuueteistkümnendsüsteemi väärtuse. Prindime ka teisendatud kuueteistkümnendsüsteemi väärtuse tüübi, mis näitab, et tegemist on stringi kuueteistkümnendarvuga.
Vea erand (TypeError):
Mõnikord saame stringi kuueteistkümnendsüsteemiks teisendamisel vigu. Selle põhjuseks on hex () meetod, mis aktsepteerib parameetrina ainult täisarvu väärtust.
1 2 3 4 5 6 7 | string_hex= '0xFF' hex_output= kuuskant(string_hex) printida(hex_output) |
Väljund:
1 | Tüüpviga:'str' objektiei saa tõlgendadanagutäisarv |
Järeldus:
Niisiis, oleme näinud erinevaid meetodeid stringi teisendamiseks kuueteistkümnendsüsteemi väiketäheks. Hex () meetod on selle lihtsa kasutamise tõttu väga populaarne. Kuid mõnikord tahame stringi teisendada ilma eesliidet 0x kasutamata, nii et sel juhul saame kasutada baitide kodeerimise () meetodit, nagu oleme juba artiklist näinud.
Selle artikli kood on saadaval alloleval githubi lingil: