Rumah > Artikel > pembangunan bahagian belakang > Menyahkod dan mengekod nombor heksadesimal menggunakan Python
Dalam artikel ini, kita akan belajar cara menyahkod dan mengekod nombor perenambelasan menggunakan Python.
Gunakan modul binasci
Gunakan modul base64
Dalam modul binasci, terdapat beberapa kaedah untuk menukar antara perwakilan binari berkod ASCII dan berbeza.
Jika anda hanya perlu mengekod atau menyahkod rentetan mentah digit heksadesimal, anda boleh menggunakan modul binascii.
Di bawah adalah algoritma/langkah untuk melaksanakan tugas yang diperlukan. −
Gunakan kata kunci import untuk mengimport modul binascii.
Buat pembolehubah untuk menyimpan rentetan input byte.
Ekodkan rentetan bait input ke dalam nombor perenambelasan menggunakan fungsi b2a_hex() modul binascii.
Cetak nombor perenambelasan terhasil bagi rentetan bait input.
Gunakan fungsi a2b_hex() modul binascii untuk menyahkod nombor heksadesimal di atas menjadi rentetan bait.
Atur cara berikut menggunakan fungsi b2a_hex() dan a2b_hex() untuk mengekod rentetan bait input ke dalam nombor perenambelasan dan menyahkodnya kembali kepada rentetan bait.
# importing binascii module import binascii # input byte string inputByteString = b'tutorialspoint python' # encoding input byte string into hexadecimal digits hexdigits = binascii.b2a_hex(inputByteString) # printing the resultant hexadecimal digits of the byte string print(hexdigits) # decoding hexadecimal digits back into byte string print(binascii.a2b_hex(hexdigits))
Apabila melaksanakan program di atas, output berikut akan dihasilkan -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
base64 juga mempunyai fungsi yang serupa. Ia juga boleh mengekod atau menyahkod nombor heksadesimal mentah.
Di bawah adalah algoritma/langkah untuk melaksanakan tugas yang diperlukan. −
Gunakan kata kunci import untuk mengimport modul base64.
Buat pembolehubah untuk menyimpan rentetan input byte.
Enkodkan rentetan bait input ke dalam digit heksadesimal (digit heksadesimal) menggunakan fungsi b16encode() modul base64.
Cetak nombor perenambelasan terhasil bagi rentetan bait input.
Gunakan fungsi b16decode() modul base64 untuk menyahkod nombor heksadesimal di atas ke dalam rentetan bait dan mencetaknya.
Atur cara berikut mengekod rentetan bait input ke dalam nombor perenambelasan dan menyahkodnya kembali kepada rentetan bait menggunakan fungsi b16encode() dan b16decode() -
# importing base64 module import base64 # input byte string inputByteString = b'tutorialspoint python' # encoding input byte byte string into hexadecimal digits # using b16encode() function of base64 module hexdigits = base64.b16encode(inputByteString) # printing the resultant hexadecimal digits of the byte string print(hexdigits) # decoding hexadecimal digits back into byte string print(base64.b16decode(hexdigits))
Apabila melaksanakan program di atas, output berikut akan dihasilkan -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
Menukar kepada dan dari perenambelasan adalah mudah dalam kebanyakan kes menggunakan fungsi yang diterangkan. Lipat sarung adalah perbezaan terbesar antara kedua-dua kaedah. Berbanding dengan operasi dalam binasci, fungsi base64.b16decode() dan base64.b16encode() hanya boleh mengendalikan huruf besar huruf heksadesimal.
Ia juga penting untuk diingat bahawa output fungsi pengekodan sentiasa rentetan bait. Anda mungkin perlu memasukkan langkah penyahkodan tambahan untuk memaksa output ke Unicode.
Terjemahan bahasa Cina bagiAtur cara berikut menggunakan fungsi nyahkod untuk menyahkod nombor perenambelasan ke dalam format ASCII:
# importing base64 module import base64 # input byte string inputByteString = b'tutorialspoint python' # encoding input byte byte string into hexadecimal digits # using b16encode() function of base64 module hexdigits = base64.b16encode(inputByteString) # printing the resultant hexadecimal digitsof the byte string print(hexdigits) # decoding hexadecimal digits in ASCII format using the decode() function print(hexdigits.decode('ascii'))
Apabila melaksanakan program di atas, output berikut akan dihasilkan -
b'7475746F7269616C73706F696E7420707974686F6E' 7475746F7269616C73706F696E7420707974686F6EKaedah
b16decode() dan a2b_hex() menerima bait atau teks Unicode sebagai input apabila menyahkod nombor perenambelasan. Walau bagaimanapun, rentetan ini hanya boleh mengandungi digit heksadesimal yang telah dikodkan ASCII.
Dalam artikel ini, kami mempelajari cara menyahkod dan mengekod perwakilan perenambelasan nombor menggunakan Python. Kami juga mempelajari cara menggunakan kaedah decode() untuk menyahkod perwakilan ASCII bagi nombor perenambelasan.
Atas ialah kandungan terperinci Menyahkod dan mengekod nombor heksadesimal menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!