2012-12-27 28 views
-2

Java的位操作,以刪除(清零)未感興趣位

byte b = 127; 

(初始化是等於11111111)

現在我只在乎位1和0

怎麼辦我移位得到00000011

我認爲這稱爲「掩蔽位」,如果我是對的?

我試圖 b < 然後 B >> 5 零出其他位,但是這只是錯誤

我的目標

switch ((myByte >> 3) & 3) 
{ 
    case 3: 
     resevered = true; 
     break; 
    case 2: 
     open = true; 
     break; 
    case 1: 
     SingleOnly = true; 
     break; 
    case 0: 
     daulMode = true; 
     break; 
} 

回答

5
b & 0x03 

會給你一個字節包含前兩位,其餘位填零。

這工作,因爲×03的二進制爲00000011

11111111 

00000011 

零的前6位,只留下剩餘的兩位。