當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Bytes轉Bits用法及代碼示例


在must-have計算機科學和編程技能中,擁有bit-level知識是您應該知道了解這個大世界中的數據變化意味著什麽的重要事情之一。然而,經常出現將數字信息中的字節和位轉換為替代單位的潛在需求。在本文中,我們將了解bytes-to-bit轉換的過程Python知道如何以及為何執行。

在 Python 中將字節轉換為位

以下是在 Python 中將字節轉換為位的一些方法:

在 Python 中使用簡單計算將字節轉換為位

Python通過簡單的方式簡化了轉換算術運算,分別是加法、減法和乘法。

換算公式:一個字節的位數為 8,要將字節轉換為位數,您需要乘以該值。

公式很簡單:

Bits = Bytes × 8

示例

Python3


def bytes_to_bits(byte_value):
    bits_value = byte_value * 8
    return bits_value
# Example: Convert 4 bytes to bits
bytes_value = 4
bits_result = bytes_to_bits(bytes_value)
print(f"{bytes_value} bytes is equal to {bits_result} bits.")
輸出
4 bytes is equal to 32 bits.


Python 使用以下命令將字節轉換為位bit_length()方法

在此示例中,字節對象b'\x01\x23\x45\x67\x89\xAB\xCD\xEF'使用轉換為整數int.from_bytes()使用‘big’字節順序,並使用以下方式獲得位數bit_length()方法。

Python3


bytes_value1 = b'\x01\x23\x45\x67\x89\xAB\xCD\xEF'
bits_value1 = int.from_bytes(bytes_value1, byteorder='big').bit_length()
print(bits_value1)
輸出
57


使用按位移位將字節轉換為位

在此示例中,字節對象b'\b\x16$@P'通過對 bitwise-shifted 字節求和轉換為整數,並使用以下公式獲得位數bit_length()方法。

Python3


bytes_value3 = b'\b\x16$@P'
bits_value3 = sum(byte << (i * 8)
                  for i, byte in enumerate(reversed(bytes_value3)))
print( bits_value3.bit_length())
輸出
36


在 Python 中處理二進製數據

在某些情況下,您可能會直接處理二進製數據,並且 python 給出struct用於各種類型所需解釋之間的轉換。本例中,struct模塊的實現是將二進製數據序列轉換為整數,然後通過bin轉換為字符串形式。因此,它對於原始二進製數據效果最好。

Python3


import struct
def bytes_to_bits_binary(byte_data):
    bits_data = bin(int.from_bytes(byte_data, byteorder='big'))[2:]
    return bits_data
# Example: Convert binary data to bits
binary_data = b'\x01\x02\x03\x04'
bits_result_binary = bytes_to_bits_binary(binary_data)
print(f"Binary data: {binary_data}")
print(f"Equivalent bits: {bits_result_binary}")
輸出
Binary data: b'\x01\x02\x03\x04'
Equivalent bits: 1000000100000001100000100




相關用法


注:本文由純淨天空篩選整理自sohansai大神的英文原創作品 Convert Bytes To Bits in Python。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。