一、int類型和bytes類型簡介
int類型代表整數,是一個固定長度的數據類型,通常在計算時用於存儲整數數據。bytes類型代表二進位數據,其長度不固定,可以存儲任意二進位數據。
在Python中,int類型和bytes類型可以進行相互轉換,非常方便。下面我們將介紹int類型和bytes類型的轉換方法。
二、int類型轉換為bytes類型
將int類型轉換為bytes類型的方法是使用int類型的to_bytes方法。
# 示例代碼
a = 1234567890
b = a.to_bytes(8, byteorder='big')
print(b)
上面代碼中,a是一個int類型的數字,使用to_bytes方法將其轉換為長度為8的二進位bytes類型數據,並且按照大端位元組序排列。
三、bytes類型轉換為int類型
將bytes類型轉換為int類型的方法是使用int類型的from_bytes方法。
# 示例代碼
b = b'\x49\x4f\x54\x41\x2d\x38\x2d\x47'
a = int.from_bytes(b, byteorder='big')
print(a)
上面代碼中,b是一個bytes類型的二進位數據,使用from_bytes方法將其轉換為int類型的整數,並且按照大端位元組序排列。
四、應用場景舉例
int類型和bytes類型的轉換在很多場景下都是非常有用的。比如在網路通信中,需要將一些數據以二進位的形式進行傳輸,這時就需要使用bytes類型。又比如在加密和解密中,會用到int類型和bytes類型相互轉換。
下面是一個簡單的加密解密示例代碼:
# 示例代碼
def encrypt(data: int, key: bytes) -> bytes:
"""
加密函數
"""
return (data ^ int.from_bytes(key, byteorder='big')).to_bytes(8, byteorder='big')
def decrypt(data: bytes, key: bytes) -> int:
"""
解密函數
"""
return int.from_bytes(data, byteorder='big') ^ int.from_bytes(key, byteorder='big')
# 測試代碼
data = 1234567890
key = b'\x12\x34\x56\x78\x90\xab\xcd\xef'
encrypted_data = encrypt(data, key)
print(encrypted_data)
decrypted_data = decrypt(encrypted_data, key)
print(decrypted_data)
上面代碼中,encrypt函數將int類型的數據進行加密,並且返回bytes類型的加密數據;decrypt函數將bytes類型的加密數據進行解密,並且返回int類型的解密數據。運行測試代碼可以看到加密和解密的過程。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/241112.html