String sa Hexadecimal sa Python

String Hexadecimal Python



Ang hexadecimal ay may batayan na 16, at maaari naming representahan ang isang string sa hexadecimal format gamit ang unlop na 0x.

Maaari naming mai-convert ang string sa hexadecimal gamit ang mga sumusunod na pamamaraan:







  1. Gamit ang hex (n) na pamamaraan
  2. Gamit ang pamamaraan ng encode ()
  3. Gamit ang literal_eval () na pamamaraan

Paraan 1: Gamit ang hex ()

Maaari naming mai-convert ang string sa hexadecimal gamit ang hex () na pamamaraan. Ang hex () na pamamaraan ay tumatanggap ng parameter sa integer form, at para sa una, kailangan naming i-convert ang string sa isang integer at pagkatapos ay ipasa ang halagang iyon sa hex () na pamamaraan tulad ng ipinakita sa ibaba:



Halimbawa: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
labing-isang
12
13
14
labinlimang
16
17
18
19
dalawampu
dalawampu't isa
# string_to_hex.py

p = '245FC'

# ipasa ang str sa int () upang i-convert ito sa base16 int

base16INT= int(p, 16)

# i-print ang na-convert na string sa base16 hexadecimal int na halaga

mag-print('halaga',base16INT)

mag-print('halaga',uri(base16INT))

hex_value= hex(base16INT)

mag-print(hex_value)

# chcking ang uri ng halaga

mag-print(uri(hex_value))

Output:

1
2
3
4
5
6
7
halaga148988

halaga<klase 'int'>

0x245fc

<klase 'str'>

Linya 3: Lumikha kami ng isang string para sa demo.

Linya 6: Ipinapasa namin ang string na iyon sa int () na pamamaraan na may batayang 16. Ngayon, ang int () na pamamaraan na ito ay babaguhin ang string sa hexadecimal integer na halaga.



Linya 9: Nai-print namin ang halagang nakukuha namin matapos ma-convert ang string sa integer hexadecimal.





Linya 10: Nag-print din kami ng uri ng halaga upang kumpirmahing ang string ay nasa form na isang integer ngayon.

Linya 12: Alam namin na ang built-in na hex (n) na pamamaraan ay tumatanggap ng halaga ng integer, na nagko-convert ng integer sa hexadecimal string. Iyon ang dahilan kung bakit kailangan naming baguhin ang string sa isang integer upang maipasa ito sa hex () na pamamaraan. Naipasa namin ang halagang base16INT na iyon sa hex () na pamamaraan at nakuha ang hex_value, string hexadecimal.



Linya 13: Nai-print namin ang na-convert na halagang hexadecimal.

Linya 16: Nai-print namin ang uri ng na-convert na halaga ng hexadecimal, na ipinapakita sa output na ito ay isang uri ng string.

Kaya, ngayon ay na-convert namin ang string sa isang hexadecimal na halaga.

Paraan 2: I-convert ang string sa hexadecimal gamit ang encode ()

Maaari din naming mai-convert ang normal na string sa isang hexadecimal string na walang anumang hexadecimal character. Para doon, kailangan naming i-convert ang string sa byte gamit ang encode ng pamamaraan (), at pagkatapos ay maaari naming mai-convert ang string sa hexadecimal tulad ng ipinakita sa ibaba:

1
2
3
4
5
6
7
8
9
10
labing-isang
12
13
14
labinlimang
16
17
18
19
dalawampu
dalawampu't isa
22
2. 3
24
25
# string_to_hex_utf8.py



# i-convert ang string sa mga byte

p= 'linuxhint'.i-encode('utf-8')



# i-print ang na-convert na string sa mga byte

mag-print(p)



# i-convert ang mga byte ng string sa hexadecimal string

hex_str= p.hex()



# i-print ang na-convert na uri ng halaga ng hexadecimal

mag-print(uri(hex_str))

Output:

1
2
3
b'linuxhint'

<klase 'str'>

Linya 4 hanggang 7: Lumikha kami ng isang string na walang anumang hexadecimal character. At pagkatapos ay i-convert ang mga string na iyon sa mga byte gamit ang encode () na pamamaraan. At pagkatapos, nai-print namin ang mga byte na iyon, na maaari naming makita sa linya ng output na numero 1.

Linya 10 hanggang 13: Tinatawag namin ang hex () na pamamaraan gamit ang dot operator, at ngayon ang mga byte ay na-convert sa hexadecimal string na halaga na kinakailangan namin. Upang kumpirmahin ang uri ng resulta ng string, i-print lamang namin ang linya bilang 13, at ipinapakita ng output na ito ay nasa isang string hexadecimal type.

Pamamaraan 3. Paggamit ng ast.literal_eval () na pamamaraan

Maaari din naming mai-convert ang string sa isang integer gamit ang ast library na pamamaraan na literal_eval. Ang pamamaraan na ito ay nagko-convert din ng string sa isang integer upang magamit ang hex () na pamamaraan upang mai-convert ang string sa hexadecimal string. Ngunit ang pamamaraang ito ay tumatanggap lamang ng 0x mga character na pang-unlahi.

1
2
3
4
5
6
7
8
9
10
labing-isang
12
13
14
labinlimang
16
17
18
19
dalawampu
dalawampu't isa
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

mula sasangayangkatliteral_eval

p = '0xAAA'



# i-convert ang string sa integer

convert_str=literal_eval(p)



# i-print ang halaga at uri ng convert_str

mag-print(convert_str)

mag-print('type', uri(convert_str))



# ipasa ang convert_str sa paraan ng hex ()

hex_value= hex(convert_str)

mag-print(hex_value)



# chcking ang uri ng halaga

mag-print(uri(hex_value))

Output:

1
2
3
4
5
6
7
2730

uri <klase 'int'>

0xaaa

<klase 'str'>

Linya 2 hanggang 10: Ini-import namin ang pamamaraang literal_eval () mula sa ast library. Pagkatapos ay lumikha kami ng isang string na may awtomatikong 0x. Pagkatapos ay ipinasa namin ang string na iyon sa literal_eval () na pamamaraan at na-convert ito sa integer. Upang kumpirmahing ang output ay nasa integer form, nai-print namin ito sa linya na numero 9. Ino-print din namin ang uri ng output, na ipinapakita na ito ay isang integer.

Linya 13 hanggang 17: Alam namin ang in-built na hex (n) na pamamaraan na tumatanggap ng halaga ng integer, na nagko-convert ng integer sa hexadecimal string. Iyon ang dahilan kung bakit kailangan naming baguhin ang string sa isang integer upang maipasa ito sa hex () na pamamaraan. Naipasa namin ang halagang iyon na convert_str (integer) sa hex () na pamamaraan at nakuha ang hex_value, string hexadecimal. Nai-print namin ang na-convert na halagang hexadecimal. Nai-print din namin ang uri ng na-convert na halagang hexadecimal din, na ipinapakita na ito ay isang uri ng string hexadecimal.

Pagbubukod ng Error (TypeError):

Minsan makakakuha kami ng mga error habang kino-convert ang string sa isang hexadecimal string. Ang dahilan sa likod nito ay ang hex () na pamamaraan na tumatanggap lamang ng halaga ng integer bilang isang parameter.

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



hex_output= hex(string_hex)

mag-print(hex_output)

Output:

1
Pagkakamali sa pagtype:'str' bagayhindi maipaliwanagbilangisang integer

Konklusyon:

Kaya, nakakita kami ng iba't ibang mga pamamaraan upang mai-convert ang string sa isang hexadecimal lowercase string. Ang hex () na pamamaraan ay napakapopular dahil sa madaling paggamit nito. Ngunit kung minsan, nais naming i-convert ang string nang hindi ginagamit ang prefiks 0x, kaya sa kasong iyon, maaari naming gamitin ang bytes encode () na pamamaraan, tulad ng nakita na natin sa artikulo.

Ang code ng artikulong ito ay magagamit sa link sa ibaba github:

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