java 16进制双字节数据获取高低字节

字节序分为 大端序(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());
}

输出结果如下:

java 16进制双字节数据获取高低字节_第1张图片

 

你可能感兴趣的:(java,16进制)