Java中如何将两个无符号的byte转换为一个有符号的short?

2024-11-22 17:35:20
推荐回答(3个)
回答1:

这个是可以进行转换和复原的,举例:
short x = -32752;//定义一个short
byte high = (byte) (0x00FF & (x>>8));//定义第一个byte
byte low = (byte) (0x00FF & x);//定义第二个byte
System.out.println(high);//打印第一个byte值
System.out.println(low);//打印第二个byte值
// 复原
short z = (short)(((high & 0x00FF) << 8) | (0x00FF & low));
System.out.println(z);//输出的结果就是-32752

回答2:

首先,到jdk6为止,java还没有无符号类型。据说jdk8会支持。
然后,你可以用new BigInteger(byte[]).shortValue()来进行处理,注意一下高低位就行了

回答3:

都先强转成short,一个右移八位,然后相加,