import numpy as np
a = np.uint8([255])
b = np.uint8([255])
print(a+b)
结果: array([254], dtype=uint8)
答案 0 :(得分:3)
uint8 可以保存范围 0..255 .
例如你写 np.uint8([256])
-> array([0], dtype=uint8)
就你而言a+b=np.uint8([510])=np.uint8([510-256])=np.uint8([254])
答案 1 :(得分:1)
uint8
是一个使用 8 位表示的无符号整数。用 8 位表示的数字范围是 [0, 255]。
8 位二进制中的 255 是 1111 1111。
当您将 1111 1111 与 1111 1111 相加时,您会得到 1 1111 1110 (= 510)。但是由于您只有 8 位要表示(因为您使用的是 uint8
),因此无法存储结果中最左边的 1,将结果呈现为 1111 1110,即 254。