Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Menyahkod dan mengekod nombor heksadesimal menggunakan Python

Menyahkod dan mengekod nombor heksadesimal menggunakan Python

PHPz
PHPzke hadapan
2023-08-19 14:09:222619semak imbas

Menyahkod dan mengekod nombor heksadesimal menggunakan Python

Dalam artikel ini, kita akan belajar cara menyahkod dan mengekod nombor perenambelasan menggunakan Python.

Kaedah penggunaan

  • Gunakan modul binasci

  • Gunakan modul base64

Kaedah 1: Menggunakan modul Binasci

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.

Algoritma (langkah)

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.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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))

Output

Apabila melaksanakan program di atas, output berikut akan dihasilkan -

b'7475746f7269616c73706f696e7420707974686f6e'
b'tutorialspoint python'

Kaedah 2: Gunakan modul base64

Modul

base64 juga mempunyai fungsi yang serupa. Ia juga boleh mengekod atau menyahkod nombor heksadesimal mentah.

Algoritma (langkah)

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.

Terjemahan bahasa Cina bagi

Contoh

ialah:

Contoh

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))

Output

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 bagi

Contoh

ialah:

Contoh

Atur 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'))

Output

Apabila melaksanakan program di atas, output berikut akan dihasilkan -

b'7475746F7269616C73706F696E7420707974686F6E'
7475746F7269616C73706F696E7420707974686F6E
Kaedah

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.

Kesimpulan

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam