零数组减1给出255数组?
我有这个代码:
a = np.array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0], dtype='uint8')
a-1
为什么我得到:
array([255, 255, 255, 255, 255, 255, 255, 255, 255, 255], dtype=uint8)
其结果?
并不是:
array([-1, -1, -1,...], dtype=uint8)
回答
因为你正在使用 uint8数据类型,它是一个 8 位的无符号整数。
它的范围是 [0, 255],因为uint8有 8 位。因此,可以用该数据类型表示的最大数量是2^8 - 1 = 256 - 1 = 255(因为包括 0)。当您从 0 中减去 1 时,您会从00000000到11111111。这称为下溢。