Home > Backend Development > Python Tutorial > How Can I Convert Integers to Byte Strings and Back in Python?

How Can I Convert Integers to Byte Strings and Back in Python?

Linda Hamilton
Release: 2024-10-20 14:52:02
Original
849 people have browsed it

How Can I Convert Integers to Byte Strings and Back in Python?

Creating Byte Strings with "bytes(n)"

The "bytes(n)" function in Python 3 doesn't convert an integer to its binary representation but instead creates a byte string of length n, filled with null bytes (b'x00'). This behavior stems from Python 3.2, where the "to_bytes()" method was introduced as a means to encode integers into bytes.

To_Bytes and To_Bytes

The "to_bytes()" method allows explicit conversion of an integer to a byte representation, specifying the byte order (big-endian or little-endian) and the length. For example:

<code class="python">(1024).to_bytes(2, byteorder='big') == b'\x04\x00'</code>
Copy after login

From_Bytes and From_Bytes

The complementary "from_bytes()" method can convert a byte sequence back into an integer:

<code class="python">int.from_bytes(b'\x04\x00', 'big') == 1024</code>
Copy after login

Unsigned Integers

The "to_bytes()" method works for non-negative (unsigned) integers. To handle signed integers, a slightly different approach is necessary:

<code class="python">def int_to_bytes(number: int) -> bytes:
    return number.to_bytes(length=(8 + (number + (number < 0)).bit_length()) // 8, byteorder='big', signed=True)

def int_from_bytes(binary_data: bytes) -> Optional[int]:
    return int.from_bytes(binary_data, byteorder='big', signed=True)</code>
Copy after login

Using these functions, you can encode and decode signed integers to and from byte sequences.

The above is the detailed content of How Can I Convert Integers to Byte Strings and Back in Python?. For more information, please follow other related articles on the PHP Chinese website!

source:php
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template