将Byte []读作无符号短Java

时间:2011-10-28 17:28:48

标签: java

我需要读取16位的字节数组作为无符号短数,而Java不支持无符号短类型。
那我该怎么办?请帮忙!!

3 个答案:

答案 0 :(得分:9)

假设您将其作为来自非Java源的二进制数据提供,您必须阅读并使用Java中的值: 将其作为(签名)short阅读,然后将其转换为int,如下所示:

int intVal = shortVal >= 0 ? shortVal : 0x10000 + shortVal 

你不能用short表示unsigned short的所有值,但是在int中,你可以。

答案 1 :(得分:4)

我不知道你是否必须使用unsigned short,但是如果你不使用,你总是可以使用char来保持unsigned short。看一下这篇简单概述的文章

http://darksleep.com/player/JavaAndUnsignedTypes.html

答案 2 :(得分:0)