17

我有一个短数组,其值介于 0 和短的最大值之间。我缩放数据(将其显示为 TYPE_USHORT),以便生成的短值介于 0 和 65535 之间。我需要打印一些缩放值,但不知道如何打印。数据位于数组和 BufferedImage 中。

4

2 回答 2

34

最简单的方法是转换为int:

short s = ...;
int i = s & 0xffff;

位掩码是为了使转换给出一个 0-65535 范围内的值,而不是 -32768-32767。

于 2010-06-30T22:20:20.430 回答
23

从 Java 1.8 开始,同样可以使用Short.toUnsignedInt

System.out.println("signed s=" + s + ", unsigned s=" + Short.toUnsignedInt(s))
于 2016-06-19T12:19:02.933 回答