Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python?

Susan Sarandon
Lepaskan: 2024-10-26 03:43:27
asal
487 orang telah melayarinya

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!