String ke Heksadesimal dengan Python

String Hexadecimal Python



Heksadesimal memiliki basis 16, dan kita dapat merepresentasikan string dalam format heksadesimal menggunakan awalan 0x.

Kita dapat mengonversi string ke heksadesimal menggunakan metode berikut:







  1. Menggunakan metode hex(n)
  2. Menggunakan metode encode ()
  3. Menggunakan metode literal_eval()

Metode 1: Menggunakan hex ()

Kita dapat mengonversi string ke heksadesimal menggunakan metode hex(). Metode hex() menerima parameter dalam bentuk bilangan bulat, dan untuk itu pertama, kita harus mengubah string menjadi bilangan bulat dan kemudian meneruskan nilai tersebut ke metode hex() seperti yang ditunjukkan di bawah ini:



Contoh: string_to_hex.py

1
2
3
4
5
6
7
8
9
10
sebelas
12
13
14
limabelas
16
17
18
19
dua puluh
dua puluh satu
# string_to_hex.py

P = '245FC'

# berikan str ke int() untuk mengubahnya menjadi base16 int

base16INT= ke dalam(P, 16)

# cetak string yang dikonversi ke nilai int heksadesimal base16

mencetak('nilai',base16INT)

mencetak('nilai',Tipe(base16INT))

hex_nilai= hex(base16INT)

mencetak(hex_nilai)

# memeriksa jenis nilainya

mencetak(Tipe(hex_nilai))

Keluaran:

1
2
3
4
5
6
7
nilai148988

nilai<kelas 'int'>

0x245fc

<kelas 'str'>

Baris 3: Kami membuat string untuk demo.

Baris 6: Kami meneruskan string itu ke metode int () dengan basis 16. Sekarang, metode int () ini akan mengubah string menjadi nilai integer heksadesimal.



Baris 9: Kami mencetak nilai yang kami dapatkan setelah mengubah string menjadi heksadesimal integer.





Baris 10: Kami juga mencetak tipe nilai untuk mengonfirmasi bahwa string sekarang dalam bentuk bilangan bulat.

Baris 12: Kita tahu metode hex(n) built-in menerima nilai integer, mengubah integer menjadi string heksadesimal. Itu sebabnya kita perlu mengonversi string menjadi integer untuk meneruskannya ke metode hex(). Kami meneruskan nilai base16INT itu ke metode hex() dan mendapatkan hex_value, string heksadesimal.



Baris 13: Kami mencetak nilai heksadesimal yang dikonversi itu.

Baris 16: Kami mencetak jenis nilai heksadesimal yang dikonversi, yang menunjukkan pada output itu adalah jenis string.

Jadi, sekarang kita mengubah string menjadi nilai heksadesimal.

Metode 2: Ubah string menjadi heksadesimal menggunakan encode ()

Kita juga dapat mengonversi string normal menjadi string heksadesimal yang tidak memiliki karakter heksadesimal. Untuk itu, kita harus mengubah string menjadi byte menggunakan metode encode(), dan kemudian kita dapat mengubah string menjadi heksadesimal seperti gambar di bawah ini:

1
2
3
4
5
6
7
8
9
10
sebelas
12
13
14
limabelas
16
17
18
19
dua puluh
dua puluh satu
22
2. 3
24
25
# string_to_hex_utf8.py



# konversi string ke byte

P= 'linuxhint'.menyandi('utf-8')



# cetak string yang dikonversi ke byte

mencetak(P)



# mengubah byte string menjadi string heksadesimal

hex_str= P.hex()



# cetak tipe nilai heksadesimal yang dikonversi

mencetak(Tipe(hex_str))

Keluaran:

1
2
3
B'linuxhint'

<kelas 'str'>

Baris 4 hingga 7: Kami membuat string yang tidak memiliki karakter heksadesimal. Dan kemudian ubah string tersebut menjadi byte menggunakan metode encode (). Dan kemudian, kami mencetak byte tersebut, yang dapat kami lihat di baris keluaran nomor 1.

Baris 10 hingga 13: Kami memanggil metode hex () menggunakan operator titik, dan sekarang byte dikonversi ke nilai string heksadesimal yang kami butuhkan. Untuk mengkonfirmasi jenis string hasil, kami hanya mencetak baris nomor 13, dan output menunjukkan bahwa itu dalam tipe heksadesimal string.

Metode 3. Menggunakan metode ast.literal_eval()

Kita juga dapat mengonversi string menjadi integer menggunakan metode pustaka ast literal_eval. Metode ini juga mengubah string menjadi integer untuk menggunakan metode hex() untuk mengubah string menjadi string heksadesimal. Tetapi metode ini hanya menerima karakter awalan 0x.

1
2
3
4
5
6
7
8
9
10
sebelas
12
13
14
limabelas
16
17
18
19
dua puluh
dua puluh satu
22
2. 3
24
25
26
27
28
29
30
31
32
33
# string_to_hex_utf8.py

daricabangimporliteral_eval

P = '0xAAA'



# ubah string menjadi bilangan bulat

konversi_str=literal_eval(P)



# cetak nilai dan jenis convert_str

mencetak(konversi_str)

mencetak('Tipe', Tipe(konversi_str))



# berikan convert_str ke metode hex ()

hex_nilai= hex(konversi_str)

mencetak(hex_nilai)



# memeriksa jenis nilainya

mencetak(Tipe(hex_nilai))

Keluaran:

1
2
3
4
5
6
7
2730

Tipe <kelas 'int'>

0xaaa

<kelas 'str'>

Baris 2 sampai 10: Kami mengimpor metode literal_eval () dari perpustakaan ast. Kemudian kita buat string dengan awalan 0x. Kemudian kami meneruskan string itu ke metode literal_eval() dan mengonversinya menjadi integer. Untuk memastikan bahwa keluaran dalam bentuk bilangan bulat, kami mencetaknya pada baris nomor 9. Kami juga mencetak jenis keluaran, yang menunjukkan bahwa itu adalah bilangan bulat.

Baris 13 hingga 17: Kita tahu metode hex(n) built-in yang menerima nilai integer, mengonversi integer ke string heksadesimal. Itu sebabnya kita perlu mengonversi string menjadi integer untuk meneruskannya ke metode hex(). Kami meneruskan nilai convert_str(integer) itu ke metode hex() dan mendapatkan hex_value, string heksadesimal. Kami mencetak nilai heksadesimal yang dikonversi itu. Kami juga mencetak tipe nilai heksadesimal yang dikonversi, yang menunjukkan bahwa itu adalah tipe heksadesimal string.

Pengecualian Kesalahan (TypeError):

Terkadang kita akan mendapatkan kesalahan saat mengonversi string ke string heksadesimal. Alasan dibalik itu adalah metode hex() hanya menerima nilai integer sebagai parameter.

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



hex_output= hex(string_hex)

mencetak(hex_output)

Keluaran:

1
KetikError:'str' obyektidak bisa diartikansebagaibilangan bulat

Kesimpulan:

Jadi, kita telah melihat berbagai metode untuk mengubah string menjadi string huruf kecil heksadesimal. Metode hex() sangat populer karena penggunaannya yang mudah. Namun terkadang, kita ingin mengonversi string tanpa menggunakan awalan 0x, jadi dalam hal ini, kita dapat menggunakan metode byte encode (), seperti yang telah kita lihat di artikel.

Kode artikel ini tersedia di tautan github di bawah ini:

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