在与服务器的交互过程中,所有的数据都可以看成一段二进制流,那如何把这些二进制流转换成我们需要的数据呢,此文将介绍byte数组转数值的几种方式
1、byte[]转换成Long
public static long bytesToLong(byte[] bytes,int offset)
{
long l64;
l64=0l;
l64 = (long)bytes[offset]&0xff;
l64 |= (long)(bytes[offset + 1]&0xff)<<8;
l64 |= (long)(bytes[offset + 2]&0xff)<<16;
l64 |= (long)(bytes[offset + 3]&0xff)<<24;
l64 |= (long)(bytes[offset + 4]&0xff)<<32;
l64 |= (long)(bytes[offset + 5]&0xff)<<40;
l64 |= (long)(bytes[offset + 6]&0xff)<<48;
l64 |= (long)(bytes[offset + 7]&0xff)<<56;
return l64;
}
2、byte[]转换成Int
public static int bytesToInt(byte[] bytes,int offset)
{
int i32;
i32=0;
i32 = (int)bytes[offset]&0xff;
i32 |= (int)(bytes[offset + 1]&0xff)<<8;
i32 |= (int)(bytes[offset + 2]&0xff)<<16;
i32 |= (int)(bytes[offset + 3]&0xff)<<24;
return i32;
}
3、byte[]转换成Short
public static short bytesToShort(byte[] bytes,int offset)
{
short s16;
s16 = (short)(bytes[offset]&0xff);
s16 |=(short)(bytes[offset + 1]&0xff)<<8;
return s16;
}