Java字节流与基本数据类型的转换实例
程序员文章站
2023-12-15 08:43:40
在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结。
注意:默认传输时...
在实际开发中,我们经常遇到与嵌入式进行通信的情况,而由于一些嵌入式设备的处理能力较差,往往以二进制的数据流的形式传输数据,在此将这些常见的转换做一总结。
注意:默认传输时使用小端模式
将字节流转换为int类型数据
public static int getint(byte[] bytes) { return (0xff & bytes[0]) | (0xff00 & (bytes[1] << 8)) | (0xff0000 & (bytes[2] << 16)) | (0xff000000 & (bytes[3] << 24)); }
将字节流转换为long类型数据
public static long getlong(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类型数据
public static float getfloat(byte[] bytes){ int temp=getint(bytes); return float.intbitstofloat(temp); }
将字节流转换为double类型数据
public static double getdouble(byte[] bytes){ long temp=getlong(bytes); return double.longbitstodouble(temp); }
将int类型数据转换为字节流
public static byte[] getbytefromint(int data){ byte[] temp=new byte[4]; temp[0]=(byte)(0xff&(data)); temp[1]=(byte)(0xff&(data>>8)); temp[2]=(byte)(0xff&(data>>16)); temp[3]=(byte)(0xff&(data>>24)); return temp; }
将long类型数据转换为字节流
public static byte[] getbytefromlong(long data){ byte[] temp=new byte[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)); return temp; }
将float类型数据转换为字节流
public static byte[] getbytefromfloat(float data){ byte[] temp=new byte[4]; int tempint=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)); return temp; }
将double类型数据转换为字节流
public static byte[] getbytefromdouble(double data){ byte[] temp=new byte[8]; long templong=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)); return temp; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
推荐阅读
-
Java中Boolean与字符串或者数字1和0的转换实例
-
实例解析Java中的synchronized关键字与线程安全问题
-
Java Base64位编码与String字符串的相互转换,Base64与Bitmap的相互转换实例代码
-
Java中Boolean与字符串或者数字1和0的转换实例
-
java Bean与json对象间的转换实例讲解
-
java--基本数据类型的转换(强制转换)
-
java--基本数据类型的转换(自动转换)
-
C#基础(204)--对象初始化器,基本数据类型与引用数据类型特点总结,ref,out关键字的使用
-
荐 Java-day01【发展史、跨平台原理、JRE和JDK、常用DOS命令、关键字、常量、数据类型、变量使用的注意事项、标识符、类型转换】
-
java Bean与json对象间的转换实例讲解