java int转byte和long转byte的方法
在网络编程中,出于节约带宽或者编码的需要,通常需要以原生方式处理long和int,而不是转换为string。
publicclassByteOrderUtils{
publicstaticbyte[]int2byte(intres){
byte[]targets=newbyte[4];
targets[3]=(byte)(res&0xff);//最低位
targets[2]=(byte)((res>>8)&0xff);//次低位
targets[1]=(byte)((res>>16)&0xff);//次高位
targets[0]=(byte)(res>>>24);//最高位,无符号右移。
returntargets;
}
publicstaticintbyteArrayToInt(byte[]b){
byte[]a=newbyte[4];
inti=a.length-1,j=b.length-1;
for(;i>=0;i--,j--){//从b的尾部(即int值的低位)开始copy数据
if(j>=0)
a[i]=b[j];
else
a[i]=0;//如果b.length不足4,则将高位补0
}
intv0=(a[0]&0xff)<<24;//&0xff将byte值无差异转成int,避免Java自动类型提升后,会保留高位的符号位
intv1=(a[1]&0xff)<<16;
intv2=(a[2]&0xff)<<8;
intv3=(a[3]&0xff);
returnv0+v1+v2+v3;
}
publicstaticbyte[]long2byte(longres){
byte[]buffer=newbyte[8];
for(inti=0;i<8;i++){
intoffset=64-(i+1)*8;
buffer[i]=(byte)((res>>offset)&0xff);
}
returnbuffer;
}
publicstaticlongbyteArrayToLong(byte[]b){
longvalues=0;
for(inti=0;i<8;i++){
values<<=8;values|=(b[i]&0xff);
}
returnvalues;
}
}
以上就是小编为大家带来的javaint转byte和long转byte的方法全部内容了,希望大家多多支持毛票票~