Satu tugas biasa apabila bekerja dengan data dalam Python ialah keperluan untuk menukar rentetan bait kepada integer. Ini boleh dilakukan dalam beberapa cara, bergantung pada versi Python dan keperluan khusus.
Dalam Python 3.2 dan lebih baru, kaedah yang disyorkan untuk menukar rentetan bait kepada integer ialah fungsi int.from_bytes(). Fungsi ini mengambil dua hujah:
Sebagai contoh, untuk menukar rentetan bait 'yxccxa6xbb' kepada integer dalam susunan big-endian, anda akan menggunakan kod berikut:
<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>
Ini akan mengembalikan nilai integer 2043455163.
Untuk menukar rentetan bait yang sama kepada integer dalam susunan little-endian, anda akan menggunakan kod berikut:
<code class="python">int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')</code>
Ini akan mengembalikan nilai integer 3148270713.
Kaedah lain untuk menukar rentetan bait kepada integer ialah menggunakan modul struct. Modul struct menyediakan beberapa fungsi untuk membungkus dan membongkar data dalam format yang berbeza. Untuk menukar rentetan bait kepada integer menggunakan modul struct, anda akan menggunakan kod berikut:
<code class="python">import struct int_value = struct.unpack('>L', b'y\xcc\xa6\xbb')[0]</code>
Argumen '>L' menentukan bahawa rentetan bait harus ditafsirkan sebagai little-endian , integer 32-bit tidak ditandatangani.
Jika anda memerlukan lebih kawalan ke atas proses penukaran, anda juga boleh menulis fungsi tersuai anda sendiri untuk menukar rentetan bait kepada integer . Berikut ialah contoh fungsi tersuai yang menukar rentetan bait kepada integer dalam susunan big-endian:
<code class="python">def bytes_to_int(bytestring): """Convert a string of bytes to an integer.""" value = 0 for byte in bytestring: value <<= 8 value |= byte return value</code>
Fungsi ini berfungsi dengan melelakan rentetan bait dan mengalihkan nilai semasa sebanyak 8 bit ke kiri untuk setiap bait. Nilai bait kemudiannya ditambahkan pada nilai semasa, menghasilkan nilai integer akhir.
Mana-mana kaedah yang anda pilih, menukar rentetan bait kepada integer dalam Python ialah proses yang mudah. Dengan memahami pilihan berbeza yang tersedia, anda boleh memilih kaedah yang paling sesuai dengan keperluan anda.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan bait kepada integer dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!