相机网站建设策划书,小程序开发用什么语言,合肥哪家制作网站,网站和app区别与联系文章目录整体思路示例代码各位看官们大家好#xff0c;上一回中咱们说的例子是自定义Dialog,这一回中咱们说的例子是
Java中的byte数组与int变量相互转换。闲话休提#xff0c;言归正转#xff0c; 让我们一起Talk Android吧#xff01;在实际项目…
文章目录整体思路示例代码各位看官们大家好上一回中咱们说的例子是自定义Dialog,这一回中咱们说的例子是
Java中的byte数组与int变量相互转换。闲话休提言归正转 让我们一起Talk Android吧在实际项目中与BLE设备通信时需要使用byte数组而程序中使用数据是int类型。因此需要在它们之间相互数据类型转换。我们将编写一个转换工具类方便在项目中 使用。本章回中将介绍转换类的实现方法。
整体思路
在java中byte类型占用8bit,而int类型占用32bit因此需要4个byte连接在一起才能存储一个int类型的变量。我们通常使用长度为4的byte数组来存放数据。也可以使用一个byte存储int类型的变量只是它的存储范围在-128-127之间不在这个范围的数字会产生精度丢失进而导致数据不准确。
在转换过程中还有一个细节需要处理字节的高低位顺序大部分机器的数据存储是高位在前低位在后有些机器的数据存储正好与此相反。因此在转换过程中也需要考虑这点。
示例代码
下面是示例程序请大家参考 /*** Desc:int变量转换成byte数组前提是int是32位占用4个byte,这里的Big表示转换后高位在前低位在后*/public static byte[] intToByteArrayBig(int value) {byte[] result new byte[4];result[0] (byte) ((value 24) 0XFF);result[1] (byte) ((value 16) 0XFF);result[2] (byte) ((value 8) 0XFF);result[3] (byte) ((value) 0XFF);return result;}/*** Desc:int变量转换成byte数组前提是int是32位占用4个byte, 这里的Small表示转换后低位在前高位在后*/public static byte[] intToByteArraySmall(int value) {byte[] result new byte[4];result[3] (byte) ((value 24) 0XFF);result[2] (byte) ((value 16) 0XFF);result[1] (byte) ((value 8) 0XFF);result[0] (byte) ((value) 0XFF);return result;}/*** Desc:int变量转换成byte数组前提是int是32位占用4个byte, 这里的Big表示转换后高位在前低位在后*/public static int byteArrayToIntBig(byte array[]) {if (array null || array.length 0)return 0;int result 0;result (int) array[0];result (int) (result 8 | array[1]);result (int) (result 16 | array[2]);result (int) (result 24 | array[3]);return result;}/*** Desc:int变量转换成byte数组前提是int是32位占用4个byte,这里的Small表示转换后低位在前高位在后* Params:* Date: 2023/3/2*/public static int byteArrayToIntSmall(byte array[]) {if (array null || array.length 0)return 0;int result 0;result (int) array[3];result (int) (result 8 | array[2]);result (int) (result 16 | array[1]);result (int) (result 24 | array[0]);return result;}我建议把上面的程序写到一个类中以后需要使用时直接使用类中的方法就可以。
看官们关于Java中的byte数组与int变量相互转换的例子咱们就介绍到这里欲知后面还有什么例子且听下回分解