2012-03-26 71 views

回答

2

基於0x11,我打算猜想你正在使用C或類似於使用相同的按位運算符的東西。

在這種情況下,您首先構建一個具有您所關心的位的位掩碼。要獲得一個設置了掩碼的掩碼,通常需要設置1(它只設置了最低有效位),並將其移到適當的位置以將該位置放在您關心的位置。

然後你在掩碼和輸入之間做一個按位and

最後,檢查and的結果是否爲零。

int position = 2; 

int bitmask = 1 << position; 

if (input & mask) 
    // that bit was a 1 
else 
    // that bit was a 0 
1

mmmmm ....如果您複製數字,將該數字的值更改爲零,並使用XOR?

例如:我想知道,如果第3位(左到右),它是一個或零:

001011011 
      XOR 
000011011 
--------- 
001000000 // "TRUE" 


000011011 
      XOR 
000011011 
--------- 
000000000 // "FALSE" 


111111111 
      XOR 
110111111 
--------- 
001000000 // "TRUE" 

等等

+0

謝謝你,一個非常簡單的解決方案! – 2012-03-26 15:47:59