byte[] bytes = ByteBuffer.allocate(4).putInt(i).array();// int 类型的变量 i 转换成 byte 数组 int index = 0; while(index < bytes.length && bytes[index]==0){ index++; }// 寻找数组中第一个非0字节的位置 byte[] result = new byte[bytes.length - index + 2];//创建一个新的数组,数组长度为bytes的非零字节数+2 result[0] = 0x02; //Integer的标识 result[1] = (byte)(bytes.length - index); //长度 System.arraycopy(bytes, index, result, 2, bytes.length - index); //通过arraycopy的方法将bytes数组中非零字节的部分复制到result数组中 return result;
时间: 2023-12-06 20:41:20 浏览: 133
System.arraycopy实现数组之间的复制
这段代码的作用是将一个 int 类型的变量 i 转换成一个 byte 数组,并且在数组开头添加了标识位和长度信息。具体来说,代码首先通过 ByteBuffer.allocate(4).putInt(i).array() 将 int 类型的变量 i 转换成一个长度为 4 的 byte 数组。然后,代码寻找数组中第一个非 0 字节的位置,并将这个位置及其之后的内容复制到一个新的数组 result 中。在新数组的开头,代码添加了一个标识位 0x02 和一个表示长度的字节,这个长度字节表示的是原始数组中的非零字节数。最后,代码返回这个新数组 result。
阅读全文