一、无符号和有符号的区别
无符号数中,所有的位都用于直接表示该值的大小。其范围为0-255,
而有符号位最高位为符号位,所以其范围为 -128-0-127
二、整形int 和byte 的关系
1 int =4 byte 1byte=8 bit
所以int 最大值为2的4*8-1次方 byte 最大值为2的1*8-1
三、不同长度字节转int 高字节在前
public static int bytes2Int(byte[] bytes )
{
//如果不与0xff进行按位与操作,转换结果将出错,有兴趣的同学可以试一下。
if(bytes.length==1){
return bytes[0]&0xff;
}else if(bytes.length==2){
int int1=bytes[1]&0xff;
int int2=(bytes[0]&0xff)<<8;
return int1|int2;
}else if(bytes.length==3){
int int1=bytes[2]&0xff;
int int2=(bytes[1]&0xff)<<8;
int int3=(bytes[0]&0xff)<<16;
return int1|int2|int3;
}else if(bytes.length==4){
int int1=bytes[3]&0xff;
int int2=(bytes[2]&0xff)<<8;
int int3=(bytes[1]&0xff)<<16;
int int4=(bytes[0]&0xff)<<24;
return int1|int2|int3|int4;
}
return -1;
}