A hexadecimális bázis 16, és egy karakterláncot hexadecimális formátumban ábrázolhatunk a 0x előtag használatával.
A karakterláncot hexadecimálissá alakíthatjuk a következő módszerekkel:
- A hex (n) módszer alkalmazásával
- Az encode () metódus használatával
- A literal_eval () metódust használva
1. módszer: A hexa () használata
A karakterláncot hexadecimálissá alakíthatjuk a hex () metódussal. A hex () metódus egész alakban fogadja el a paramétert, és ehhez először a karakterláncot egész számmá kell alakítanunk, majd ezt az értéket át kell adnunk a hex () metódusnak az alábbiak szerint:
Példa: string_to_hex.py
1 2 3 4 5 6 7 8 9 10 tizenegy 12 13 14 tizenöt 16 17 18 19 húsz huszonegy | # string_to_hex.py o = '245FC' # adja át az str -t az int () -nek, hogy base16 int -vé alakítsa base16INT= int(o, 16) # nyomtassa ki az átalakított karakterláncot base16 hexadecimális int értékre nyomtatás('érték',base16INT) nyomtatás('érték',típus(base16INT)) hex_value= hatszög(base16INT) nyomtatás(hex_value) # az érték típusának ellenőrzése nyomtatás(típus(hex_value)) |
Kimenet:
1 2 3 4 5 6 7 | érték148988 érték<osztály 'int'> 0x245fc <osztály 'str'> |
3. sor: Létrehoztunk egy karakterláncot a demóhoz.
6. sor: Ezt a karakterláncot átadjuk az int () metódusnak a 16. bázissal. Most ez az int () metódus hexadecimális egész értékre konvertálja a karakterláncot.
9. sor: Kinyomtatjuk azt az értéket, amelyet a karakterlánc egész hexadecimálisra konvertálása után kapunk.
10. sor: Az érték típust is kinyomtatjuk annak megerősítésére, hogy a karakterlánc most egész szám formájában van.
12. sor: Tudjuk, hogy a beépített hex (n) módszer elfogadja az egész értéket, és az egész számot hexadecimális karakterlánccá alakítja át. Ezért a karakterláncot egész számmá kell alakítanunk, hogy átadhassuk a hex () metódusba. Ezt a base16INT értéket átadtuk a hex () metódusnak, és megkaptuk a hex_value, string hexadecimális értéket.
13. sor: A konvertált hexadecimális értéket kinyomtatjuk.
16. sor: Kinyomtatjuk az átalakított hexadecimális érték típusát, amely a kimenetben azt mutatja, hogy ez egy karakterlánc típus.
Tehát most a karakterláncot hexadecimális értékké alakítottuk át.
Módszer: A karakterlánc konvertálása hexadecimálisra a kódolás () használatával
A normál karakterláncot hexadecimális karakterlánccá is átalakíthatjuk, amely nem tartalmaz hexadecimális karaktert. Ehhez a karakterláncot bájtra kell konvertálnunk a encode () metódussal, majd a karakterláncot hexadecimálissá alakíthatjuk az alábbiak szerint:
1 2 3 4 5 6 7 8 9 10 tizenegy 12 13 14 tizenöt 16 17 18 19 húsz huszonegy 22 2. 3 24 25 | # string_to_hex_utf8.py # konvertálja a karakterláncot bájtra o= 'linuxhint'.kódol('utf-8') # nyomtassa ki az átalakított karakterláncot bájtokra nyomtatás(o) # konvertálja a karakterlánc bájtokat hexadecimális karakterlánccá hex_str= o.hatszög() # nyomtassa ki az átalakított hexadecimális értéktípust nyomtatás(típus(hex_str)) |
Kimenet:
1 2 3 | b'linuxhint' <osztály 'str'> |
4-7 sor: Létrehoztunk egy karakterláncot, amely nem tartalmaz hexadecimális karaktert. Ezután konvertálja ezeket a karakterláncokat bájtra az encode () metódussal. Ezután kinyomtatjuk azokat a bájtokat, amelyeket az 1 -es kimeneti sorban láthatunk.
10-13 sor: A hex () metódust a pont operátor segítségével hívjuk, és most a bájtokat a szükséges hexadecimális karakterlánc értékké alakítjuk át. Az eredménylánc típusának megerősítéséhez csak kinyomtatjuk a 13 -as sorszámot, és a kimenet azt mutatja, hogy hexadecimális karakterláncban van.
3. módszer. Ast.literal_eval () módszerrel
A karakterláncot egész számmá is alakíthatjuk a literal_eval ast könyvtár módszerével. Ez a módszer a karakterláncot egész számmá alakítja, hogy a hex () metódussal hexadecimális karakterlánccá alakítsa át a karakterláncot. Ez a módszer azonban csak 0x előtagú karaktereket fogad el.
1 2 3 4 5 6 7 8 9 10 tizenegy 12 13 14 tizenöt 16 17 18 19 húsz huszonegy 22 2. 3 24 25 26 27 28 29 30 31 32 33 | # string_to_hex_utf8.py tól tőlágimportliteral_eval o = '0xAAA' # konvertálja a karakterláncot egész számgá convert_str=literal_eval(o) # nyomtassa ki a convert_str. értékét és típusát nyomtatás(convert_str) nyomtatás('típus', típus(convert_str)) # adja át a convert_str -t a hex () metódusnak hex_value= hatszög(convert_str) nyomtatás(hex_value) # az érték típusának ellenőrzése nyomtatás(típus(hex_value)) |
Kimenet:
1 2 3 4 5 6 7 | 2730 típus <osztály 'int'> 0xaaa <osztály 'str'> |
2-10. Sor: Importáljuk a literal_eval () metódust az ast könyvtárból. Ezután létrehozunk egy karakterláncot a 0x előtaggal. Ezután átadtuk ezt a karakterláncot a literal_eval () metódusnak, és egész számmá alakítottuk át. Annak megerősítésére, hogy a kimenet egész alakban van, kinyomtatjuk a 9. sorban. Kinyomtatjuk a kimenet típusát is, amely azt mutatja, hogy egész szám.
13-17 sor: Ismerjük a beépített hex (n) metódust, amely elfogadja az egész értéket, és az egész számot hexadecimális karakterlánccá alakítja át. Ezért a karakterláncot egész számmá kell alakítanunk, hogy átadhassuk a hex () metódusba. Ezt a convert_str (egész) értéket átadtuk a hex () metódusnak, és megkaptuk a hex_value, string hexadecimális értéket. A konvertált hexadecimális értéket kinyomtatjuk. Kinyomtatjuk a konvertált hexadecimális érték típusát is, ami azt mutatja, hogy ez egy karakterlánc hexadecimális típus.
Hiba kivétel (TypeError):
Néha hibákat kapunk, amikor a karakterláncot hexadecimális karakterlánccá alakítjuk. Ennek oka a hex () metódus, csak az egész értéket fogadja el paraméterként.
1 2 3 4 5 6 7 | string_hex= '0xFF' hex_output= hatszög(string_hex) nyomtatás(hex_output) |
Kimenet:
1 | Típushiba:'str' tárgynem értelmezhetőmintegy egész szám |
Következtetés:
Tehát különböző módszereket láttunk a karakterlánc hexadecimális kisbetűssé alakítására. A hex () módszer nagyon népszerű az egyszerű használata miatt. Néha azonban a karakterláncot 0x előtag használata nélkül szeretnénk átalakítani, így ebben az esetben használhatjuk a byte encode () metódust, amint azt a cikkben már láttuk.
A cikk kódja az alábbi github linken érhető el: