零数组减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 时,您会从0000000011111111。这称为下溢。


以上是零数组减1给出255数组?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>