Menukar Rentetan Byte kepada Integer dalam Python
Dalam Python, anda boleh menghadapi senario di mana anda perlu menukar rentetan bait menjadi integer. Berikut ialah pecahan cara untuk mendekati penukaran ini:
Kaedah 1: Menggunakan from_bytes
Untuk versi Python 3.2 dan lebih baru, kaedah int.from_bytes menyediakan mekanisme yang mudah untuk melakukan penukaran ini:
<code class="python">int_from_bytes = int.from_bytes(byte_string, byteorder='big') # or for little-endian byte order: int_from_bytes = int.from_bytes(byte_string, byteorder='little')</code>
Parameter 'byteorder' menentukan endian rentetan bait anda ('besar' atau 'kecil').
Kaedah 2: Manipulasi Bit
Jika anda lebih suka pendekatan manipulasi bit yang tidak memerlukan pengimportan modul, anda boleh menggunakan kod berikut:
<code class="python">int_from_bytes = sum( (ord(byte) << (i * 8)) for i, byte in enumerate(byte_string[::-1]) )</code>
Kaedah ini berulang melalui bait dalam susunan terbalik, mendarab setiap nilai bait dengan kuasa 2 untuk mencipta integer terkumpul.
Perbandingan Kaedah
Walaupun kedua-dua kaedah adalah cekap, kaedah 'from_bytes' disyorkan untuk kesederhanaan dan serba boleh. Walau bagaimanapun, jika anda bimbang tentang mengimport kebergantungan, pendekatan manipulasi bit menyediakan alternatif yang lebih padat.
Nota Mengenai Mengimport Modul
Mengimport modul boleh menjejaskan prestasi, terutamanya jika proses import diulang beberapa kali. Untuk meminimumkan kesan ini, import modul yang diperlukan sekali sahaja di luar gelung paling dalam.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!