Java不接受无符号字节,我正在尝试映射它们

时间:2018-11-24 21:23:34

标签: java dictionary byte unsigned

我需要映射2个字节,以便如果起始位置(或以字节为单位的rgb颜色)以255(或大于127的任何值)开头,并且需要在0处结束,例如30个细分数学很简单:您只需制作((0-255 * segment)/ 30)(255-0),对于每个段,您的字节就会少一点。这只是线性混合的数学 无论如何,其他语言都有一个称为map的功能。 Example of Map in C++ 但是问题是我需要在Java中使用此功能。所以我决定自己做。原因是因为我需要从一侧到另一侧混合颜色。所以我做了这个简单的应用,但是它不起作用,因为当计算的字节超过127时,java认为它的值在起点之下。 代码在这里。第一个功能是尝试淡入淡出的java方法,第二个功能是尝试进行映射计算的功能:

attributes

1 个答案:

答案 0 :(得分:1)

虽然对无符号字节的语言支持本来不错,可能比有符号字节更好的选择,但是您可以很容易地将一个转换为另一个。

byte b = // some signed value
int unsigned = b & 0xFF;

简而言之,将所有计算都作为int值进行,并且仅将其转换为一个字节以用于存储或兼容性。

由于您可能要混合大量像素,因此甚至可以使用floatdouble进行计算,并在需要时转换为字节。