不能按位反转bytearray

2024-06-14 10:48:41 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是一小段代码:

data = bytearray(file.read(1024))
for i in range(0, len(data)):
    data[i] = ~data[i]

但不知为什么,这行不通!我一直在for循环的第行得到ValueError: byte must be in range(0, 256)。我不明白,一个字节的位倒数不是和一个字节的大小一样吗??在

我添加了print type(data[i])只是为了看看到底发生了什么,它说int!!{cda}在python中如何容纳字节?在


Tags: 代码inforreaddatalen字节range
1条回答
网友
1楼 · 发布于 2024-06-14 10:48:41

由于bytearray中的字节是无符号的,按位反转运算符将始终返回负整数,只需将256(一个字节的最大值)加到它: 在

data = bytearray(file.read(1024))
for i in range(0, len(data)):
    data[i] = ~data[i] + 256

相关问题 更多 >