Android开发时,在网络通信时使用byte数组读取数据,服务端发来一个整型数值5555,如何从byte中提取出来?
下面为测试代码,5555转为十六进制为 0x15b3
byte[] a = new byte[](byte)0x15, (byte)0xb3}; int port = a[0]&0xff; port = port << 8; port += a[1]&0xff;
由于在java里,byte是有符号类型,取值范围为 -127~127,如果直接将 a[1] 的值赋给int型,则取出来的值为 -77
int b = a[1] //b值等于77
所以,需要加上“与运算” &0xff
发表评论