为什么使用短数据类型来存储 RGB 值



我正在做伯克利61B MOOC的一个项目。在这种情况下,我必须创建一个数组来表示图像的像素和每个像素的 RGB 值。我正在使用 3D 数组进行相同的操作:

image=new int[width][height][3];

但是,我从项目的描述中发现了以下声明:

每个像素有三个数字,范围为 0...255,代表 像素的红色、绿色和蓝色强度。 这三个字节是 称为图像的 RGB 值。 所有三个像素 值为零表示纯黑色,并且像素中的所有三个值都在其中 是 255 是亮白色。 尽管Java具有"字节"整数类型,但其 范围是 -128...127,所以我们通常会使用 Java 的"短"类型来 采用 RGB 参数或返回 RGB 值的方法。

据我所知,int 类型足以包含 0-255 之间的值。请帮助我用简单的英语理解建议使用短数据类型的原因。

int

是 32 位,short 是 16,byte 是 8。[0, 255] 范围不需要 32 位,但字节的范围 [-128, 127] 不适合表示 RGB,所以你得到的太短了。

最新更新