Java字节流与基本数据类型的转换实例
在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结。
注意:默认传输时使用小端模式
将字节流转换为int类型数据
publicstaticintgetInt(byte[]bytes){
return(0xff&bytes[0])|(0xff00&(bytes[1]<<8))|(0xff0000&(bytes[2]<<16))
|(0xff000000&(bytes[3]<<24));
}
将字节流转换为long类型数据
publicstaticlonggetLong(byte[]bytes){
return((0xffL&(long)bytes[0])|(0xff00L&((long)bytes[1]<<8))|(0xff0000L&((long)bytes[2]<<16))
|(0xff000000L&((long)bytes[3]<<24))|(0xff00000000L&((long)bytes[4]<<32))
|(0xff0000000000L&((long)bytes[5]<<40))|(0xff000000000000L&((long)bytes[6]<<48))
|(0xff00000000000000L&((long)bytes[7]<<56)));
}
将字节流转换为float类型数据
publicstaticfloatgetFloat(byte[]bytes){
inttemp=getInt(bytes);
returnFloat.intBitsToFloat(temp);
}
将字节流转换为double类型数据
publicstaticdoublegetDouble(byte[]bytes){
longtemp=getLong(bytes);
returnDouble.longBitsToDouble(temp);
}
将int类型数据转换为字节流
publicstaticbyte[]getByteFromInt(intdata){
byte[]temp=newbyte[4];
temp[0]=(byte)(0xFF&(data));
temp[1]=(byte)(0xFF&(data>>8));
temp[2]=(byte)(0xFF&(data>>16));
temp[3]=(byte)(0xFF&(data>>24));
returntemp;
}
将long类型数据转换为字节流
publicstaticbyte[]getByteFromLong(longdata){
byte[]temp=newbyte[8];
temp[0]=(byte)(0xFF&(data));
temp[1]=(byte)(0xFF&(data>>8));
temp[2]=(byte)(0xFF&(data>>16));
temp[3]=(byte)(0xFF&(data>>24));
temp[4]=(byte)(0xFF&(data>>32));
temp[5]=(byte)(0xFF&(data>>40));
temp[6]=(byte)(0xFF&(data>>48));
temp[7]=(byte)(0xFF&(data>>56));
returntemp;
}
将float类型数据转换为字节流
publicstaticbyte[]getByteFromFloat(floatdata){
byte[]temp=newbyte[4];
inttempInt=Float.floatToIntBits(data);
temp[0]=(byte)(0xFF&(tempInt));
temp[1]=(byte)(0xFF&(tempInt>>8));
temp[2]=(byte)(0xFF&(tempInt>>16));
temp[3]=(byte)(0xFF&(tempInt>>24));
returntemp;
}
将double类型数据转换为字节流
publicstaticbyte[]getByteFromDouble(doubledata){
byte[]temp=newbyte[8];
longtempLong=Double.doubleToLongBits(data);
temp[0]=(byte)(0xFF&(tempLong));
temp[1]=(byte)(0xFF&(tempLong>>8));
temp[2]=(byte)(0xFF&(tempLong>>16));
temp[3]=(byte)(0xFF&(tempLong>>24));
temp[4]=(byte)(0xFF&(tempLong>>32));
temp[5]=(byte)(0xFF&(tempLong>>40));
temp[6]=(byte)(0xFF&(tempLong>>48));
temp[7]=(byte)(0xFF&(tempLong>>56));
returntemp;
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 小红书平安祝福语简短
11 生日祝福语大全女孩简短
12 收生日红包祝福语 简短
13 领证幽默祝福语简短
14 法考面试祝福语简短
15 老哥出门祝福语简短语
16 送灯祝福语简短独特
17 幼儿狗年祝福语大全简短
18 好听的元旦简短祝福语