在java裏,一個byte佔8位 ( bit0-bti7 ),那我們怎麼去獲取其中的某個bit值或連續的幾個bit值呢?
獲取單個bit值:
//b爲傳入的字節,i爲第幾位(範圍0-7),如要獲取bit0,則i=0
public int getBit(byte b,int i) {
int bit = (int)((b>>i) & 0x1);
return bit;
}
獲取多個連續的bit值:
//b爲傳入的字節,start是起始位,length是長度,如要獲取bit0-bit4的值,則start爲0,length爲5
public int getBits(byte b,int start,int length) {
int bit = (int)((b>>start)&(0xFF>>(8-length)));
return bit;
}