Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python: Kaedah Mana Yang Terbaik?

Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python: Kaedah Mana Yang Terbaik?

Barbara Streisand
Barbara Streisandasal
2024-10-26 04:04:02225semak imbas

How to Convert a Byte String to an Integer in Python: Which Method is Best?

Cara Menukar Rentetan Byte kepada Integer dalam Python

Menukar rentetan bait kepada integer dalam Python boleh dicapai menggunakan pelbagai kaedah, sesetengah daripadanya menawarkan prestasi yang lebih baik daripada yang lain.

Fungsi Terbina dalam: int.from_bytes()

Dalam Python versi 3.2 dan ke atas, anda boleh menukar terus rentetan bait kepada integer menggunakan fungsi int.from_bytes():

<code class="python">my_int = int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')</code>

Di sini, byteorder boleh sama ada 'besar' atau 'sedikit' untuk menentukan endian rentetan bait. Big-endian bermaksud bait paling ketara disimpan dahulu, manakala little-endian bermakna bait paling kurang ketara disimpan dahulu.

Menggunakan Perwakilan Perduaan

Pendekatan lain ialah dengan tukar rentetan bait kepada perwakilan binarinya dan kemudian gunakan fungsi int():

<code class="python">my_int = int(''.join(format(byte, '08b') for byte in b'y\xcc\xa6\xbb'[::-1]), 2)</code>

Kaedah ini lebih perlahan daripada int.from_bytes(), tetapi ia boleh berguna jika anda perlu bekerja dengan data binari terus.

Fungsi Tersuai

Anda juga boleh mencipta fungsi tersuai anda sendiri untuk menukar rentetan bait kepada integer:

<code class="python">def convert_bytes_to_int(byte_string, endianness='big'):
    if endianness == 'big':
        return sum(ord(c) << (i * 8) for i, c in enumerate(byte_string))
    else:
        return sum(ord(c) << (len(byte_string) - i - 1) * 8 for i, c in enumerate(byte_string))</code>

Perbandingan Prestasi

Prestasi kaedah berbeza ini boleh berbeza-beza bergantung pada panjang dan endian rentetan bait. Secara amnya, int.from_bytes() ialah kaedah terpantas, diikuti dengan kaedah perwakilan binari dan kemudian fungsi tersuai.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan Byte kepada Integer dalam Python: Kaedah Mana Yang Terbaik?. 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