2011-04-12 24 views

回答

6

使用bit-mask

int y = x & 0x7F; 
+1

@Pranay值:爲這個偉大的回答一些細節:你會「面具」'1000 0010'使用'0111 1111'這個面膜當成你標誌着'1'爲每一位想「保持其狀態」(例如,如果原始位爲'0','0&1 = 0',並且如果其'1','1&1 = 1'所以安定通過'1'給你的位的初始值)和'0'了一下你想「面具」來'0'。 – Diego 2011-04-12 11:30:30

5
byte b =10; 
    byte result = (byte) (b & 127); 

下封這將是

00001010 //10 in dec 
AND 01111111 // our mask ,127 in dec 
    = 00001010 //10 

另一個例子

10000001 //129 in dec 
AND 01111111 // our mask ,127 in dec 
    = 00000001 //1 
0
private static boolean getBit(int b, int p) { 
    int mask = 1 << 8 - p; 
    return (b & mask) > 0; 
} 

private static int setBit(int b, int p) { 
    int mask = 1 << 8 - p; 
    return b | mask; 
} 

private static int unsetBit(int b, int p) { 
    int mask = 1 << 8 - p; 
    return b & ~mask; 
} 
相關問題