java獲取一個byte字節裏的某個bit值或連續的幾個bit值

在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;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章