将Byte []作为无符号short Java读取

7

我需要将一个16位的字节数组读取为无符号短整型数,但是Java不支持无符号短整型。
那么我该怎么做呢?请帮忙!


一个16位的字节数组?那么它是长度为2的数组吗? - Kirk Woll
我想你的意思是转换,而不是读取,对吗?所以,将两个字节转换为单个整数值?诀窍在于,您需要将其存储为“int”,而不是“short”。 - 101100
char 数据类型本质上是一个无符号的 short。但最常见的技术是使用一个 int - corsiKa
@glowcoder:shorts 是两个字符。 - Matt K
@mkb 短整型(shorts)是2个字节,字符(char)也是两个字节。请在http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html上了解更多信息。 - corsiKa
呼,还好我不以 Java 为生 :) - Matt K
3个回答

9
假设您从非Java来源以二进制数据的形式获得了它,并且需要在Java中读取并处理其值: 将其作为(有符号的)short读取,然后按以下方式转换为int:
int intVal = shortVal >= 0 ? shortVal : 0x10000 + shortVal 

在short类型中,无法表示所有的unsigned short值,但是在int类型中可以。


4


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接