如何在Java中打印short作为unsigned short

Nat*_*ood 15 java unsigned short ushort

我有一个short数组,其值介于0和short的最大值之间.我缩放数据(将其显示为TYPE_USHORT),以便生成的短值范围在0到65535之间.我需要打印一些缩放值,但无法弄清楚如何.数据位于数组和BufferedImage中.

Jon*_*eet 28

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

short s = ...;
int i = s & 0xffff;
Run Code Online (Sandbox Code Playgroud)

位掩码是使转换的值在0-65535而不是-32768-32767.


小智 15

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

System.out.println("signed s=" + s + ", unsigned s=" + Short.toUnsignedInt(s))
Run Code Online (Sandbox Code Playgroud)

  • 时间差异多大. (3认同)