自定义协议-----字节不得不说的操作
一、得到高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(' ');
}
}
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。