在Java中,如何将短消息打印为未签名的短消息

在Java中,如何将短消息打印为未签名的短消息,java,unsigned,short,ushort,Java,Unsigned,Short,Ushort,我有一个short数组,其值范围在0和short的最大值之间。我缩放数据(将其显示为_USHORT类型),以便生成的短值范围在0到65535之间。我需要打印一些缩放值,但不知道如何打印。数据位于数组和缓冲区图像中。最简单的方法是转换为int: short s = ...; int i = s & 0xffff; 位掩码用于使转换给出的值在0-65535范围内,而不是-32768-32767范围内。自Java 1.8以来,同样可以使用Short.toUnsignedInt来完成: Sys

我有一个short数组,其值范围在0和short的最大值之间。我缩放数据(将其显示为_USHORT类型),以便生成的短值范围在0到65535之间。我需要打印一些缩放值,但不知道如何打印。数据位于数组和缓冲区图像中。

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

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

位掩码用于使转换给出的值在0-65535范围内,而不是-32768-32767范围内。

自Java 1.8以来,同样可以使用
Short.toUnsignedInt来完成:

System.out.println("signed s=" + s + ", unsigned s=" + Short.toUnsignedInt(s))

时间带来了多大的不同。非常有效,但可读性不如
Short.toUnsignedInt()
@scottb:True-这是在写完答案四年后才出现的:)