java取字节的中bit位

1.获取bit位

1
2
3
4
5
6
7
8
9
10
/**
* 获取bit 位
*
* @param b
* @param i
* @return
*/
public static int getBit(byte b, int i) {
return (b >> i) & 0x01;
}

2.获取多个连续的bit位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 获取多个连续的bit值(如要获取bit0-bit4的值,则start为0,length为5)
*
* @param b
* 为传入的字节
* @param start
* 起始位
* @param length
* 长度
* @return
*/
public static int getBits(byte b, int start, int length) {
int bit = (int) ((b >> start) & (0xFF >> (8 - length)));
return bit;
}