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

Barbara Streisand
Lepaskan: 2024-10-26 04:04:02
asal
226 orang telah melayarinya

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

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

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

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!

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!