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的方法全部内容了,希望大家多多支持毛票票~