我正在尝试将 short 转换为 2 个字节......然后从这 2 个字节尝试获得相同的 short 值。为此,我编写了以下代码:
short oldshort = 700;
byte 333= (byte) (oldshort);
byte byte2= (byte) ((oldshort >> 8) & 0xff);
short newshort = (short) ((byte2 << 8) + byte1);
System.out.println(oldshort);
System.out.println(newshort);
对于 700 (oldshort) 的值,newhosrt 是 444。经过一些测试,它看起来像 \t 此代码仅适用于某些值。就像...如果oldshort = 50,那么它会正常工作..但如果它是-200,或者大于127的值(我认为)它不起作用。我想有符号字节,二进制补码值等存在问题......但我不知道如何解决它。
任何想法??在java中有任何本地方法可以做到这一点吗?提前致谢!