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

byteb1的取值是0至255,byteb2的取值是0至255,将这两个byte的二进制和在一起,b1在前,b2在后,也就是1111111111111111,一个shor... byte b1的取值是0至255,byte b2的取值是0至255,将这两个byte的二进制和在一起,b1在前,b2在后,也就是11111111 11111111,一个short类型就是16位,我现在需要的是有范围的
/**
* 将data字节型数据转换为0~255 (0xFF 即BYTE)。
* @param data
* @return
*/
public static int getUnsignedByte(byte data){
return data&0x0FF;
}
public static void main(String[] args) {
byte b1 = (byte)127;
byte b2 = (byte)255;
System.out.println((short)(b1*256+getUnsignedByte(b2)));
}
这是我的解决方法,还请赐教:
当b1=127,b2=255时,此时值最大,为32767,
当b1=128,b2=0时,此时值最小,为-32768
展开
 我来答
198901245631
2015-06-30 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1720万
展开全部
这个是可以进行转换和复原的,举例:
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
azlar12345
2012-08-19
知道答主
回答量:8
采纳率:0%
帮助的人:6万
展开全部
首先,到jdk6为止,java还没有无符号类型。据说jdk8会支持。
然后,你可以用new BigInteger(byte[]).shortValue()来进行处理,注意一下高低位就行了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a8b3de6
2012-08-18
知道答主
回答量:13
采纳率:0%
帮助的人:12.6万
展开全部
都先强转成short,一个右移八位,然后相加,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式