字节序分为 大端序(Big endian)
和 小端序(Little endian)
。
- 大端序:高位字节在前,低位字节在后。
- 小端序:低位字节在前,高位字节在后。
但是在和某些设备通信。给的文档中。总会有些小字节序或大字节序。所以传输数据。就要按照他们的要求进行组装数据。
/** * byte数组转为十六进制字符串 * * @param bytes * @return */ public static String byte2Hex(byte[] bytes) { StringBuffer hexString = new StringBuffer(); for (int i = 0; i < bytes.length; i++) { String hex = Integer.toHexString(0xff & bytes[i]); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } return hexString.toString(); } /** * 16进制转字节。低字节在前、高字节在后 * @param value * @return */ public static byte[] hex2LowHighByte(long value){ byte a[]=new byte[2];//双字节 a[0]=(byte)(value&0xff); //获得低位字节 a[1]=(byte)(value>>>8);//获得高位字节 return a; } public static void main(String[] args){ System.out.println(byte2Hex(hex2LowHighByte(0x1000)).toUpperCase()); }
输出结果如下: