Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python?

Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python?

Susan Sarandon
Susan Sarandonasal
2024-10-26 03:43:27487semak imbas

How to Convert a Byte String to an Integer in Python?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn