2字节缩短java

我正在从串口读取133个长度的数据包,最后2个字节包含CRC值,2个字节的值,我已经使用java(单个我想)。
这是我做的,

short high=(-48 & 0x00ff);
short low=80;

short c=(short) ((high<<8)+low);

但我没有得到正确的结果,是因为签名的价值问题吗?
我怎么可以解决这个问题,请帮我解决问题

记住,如果你不太熟悉细节,你不必用自己的一点点变化。您可以使用ByteBuffer来帮助您:

ByteBuffer bb = ByteBuffer.allocate(2);
bb.order(ByteOrder.LITTLE_ENDIAN);
bb.put(firstByte);
bb.put(secondByte);
short shortVal = bb.getShort(0);

反之亦然,你可以放一个短的,然后拉出字节。

顺便说一下,按位操作会自动将操作数提升至至少一个int的宽度。实际上没有“不允许移动一个字节超过7位”的概念和其他似乎正在进行的传闻。

http://stackoverflow.com/questions/736815/2-bytes-to-short-java

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:2字节缩短java