共计 746 个字符,预计需要花费 2 分钟才能阅读完成。
自定义协议 —– 字节不得不说的操作
一、得到高 4 位
/**
* 得到高 4 位
*/
public static int getHeight4(byte data){return ((data & 0xf0) >> 4);
}
二、得到低 4 位
/**
* 得到低四位
*/
public static int getLow4(byte data){return (data & 0x0f);
}
三、得到 byte 某一位 bit 值:
/**
* 得到 byte 某一位 bit 值
* @param b 字节
* @param index 位置的下标 (从 0 开始)
*/
public int getBit(byte b,int index) {int bit = (int)((b>>i) & 0x1);
return bit;
}
四、获取多个连续的 bit 值
/**
* 获取多个连续的 bit 值
*
* @param b 字节
* @param start 开始的下标
* @param len 结束的下标
*/
public static int getBits(byte b, int start, int len) {return (b >> start) & (0xFF >> (8 - len));
}
五、打印字节序(字节转 16 进制)
/**
* 字节转 16 进制.
* @param bs 字节数组
*/
private String bytesToHex(byte[] bs) {char[] chars = "0123456789ABCDEF".toCharArray();
StringBuilder sb = new StringBuilder("");
int bit;
for (int i = 0; i < bs.length; i++) {bit = (bs[i] & 0x0f0) >> 4;
sb.append(chars[bit]);
bit = bs[i] & 0x0f;
sb.append(chars[bit]);
sb.append(' ');
}
}
正文完