舉個例子,假設我想計算124和100之間的AND函數,我該怎麼做?請簡單解釋一下。謝謝。我該如何處理兩個數字的按位與?
1
A
回答
0
只需使用&
操作符:
int a = 124, b = 100;
int c = a & b;
8
int number = 124 & 100
說明:
轉換124以逐位格式,假定一個32位整數。 =
0000 0000 0000 0000 0000 0000 0111 1100
轉換100到按位格式,假定一個32位整數。 =
0000 0000 0000 0000 0000 0000 0110 0100
安定按位:
0000 0000 0000 0000 0000 0000 0111 1100
0000 0000 0000 0000 0000 0000 0110 0100
----------------------------------------
0000 0000 0000 0000 0000 0000 0110 0100
---------------------------------------
即十進制數100
!這將包含在number
的上述代碼中!
與門真值表:
+-------+---------+
| A | B | A AND B |
+-------+---------+
|0 | 0 | 0 |
|0 | 1 | 0 |
|1 | 0 | 0 |
|1 | 1 | 1 |
+-------+---------+
#include <stdio.h>
#define IS_SET(a,b) ((((a & (1 << b)) >> b) > 0?1:0))
#define SET(a,b) ((a |= (1 << b)))
#define CLEAR(a,b) ((a &= ~(1 << b)))
int AND(int a, int b)
{
int i;
int c = 0;
for(i = 0; i < sizeof(int); i++){
if(IS_SET(a,i) && IS_SET(b,i)){
SET(c,i);
}else{
CLEAR(c,i);
}
}
return c;
}
int main(int argc,char *Argv[])
{
int a = 10;
int b = 30;
//Basic UNIT test!
if((a & b) == AND(a,b)){
printf("Test pass!");
}else{
printf("Test fail!");
}
}
0
之前只使用result = a & b
...
1
使用按位與操作者用C &
像124 & 100
相關問題
- 1. 我該如何處理 - 或與Rx?
- 2. 我應該如何處理兩個類之間的異常?
- 3. 我該如何處理這段文字?
- 4. 處理兩個提交按鈕與evently
- 5. (StaleElementException:Selenium)我該如何處理?
- 6. 我該如何處理「CrossThreadMessagingException」?
- 7. NullReferenceException,我該如何處理?
- 8. 我應該如何處理兩個google-services.json文件?
- 9. 我應該如何在AngularJS中處理兩個異步調用?
- 10. 如何處理兩個在我的形式提交按鈕
- 11. 我該如何處理這個double.NaN
- 12. 我該如何處理這個警告
- 13. 我該如何處理這個問題?
- 14. 我該如何處理與java和ajax的html數組
- 15. 我該如何處理我的servlet
- 16. 我應該如何處理我的pg_log?
- 17. 我該如何處理在C參數與getopt_long
- 18. 我應該如何處理我的動作中的多個按鈕?
- 19. 我如何處理Java中的1000位數字?
- 20. 我該如何處理與DWR ..如果我的Java類返回XML數據
- 21. 我該如何處理退出的ScalaFX
- 22. 我該如何處理耗時的SQL?
- 23. 在8086微處理器上乘以32位兩個數字
- 24. 同時處理兩個物理按鈕
- 25. 按位操作添加兩個數字?
- 26. 如何處理單個窗體中的兩個按鈕?
- 27. 我該如何處理我在某個項目上的分銷?
- 28. 我有這個字符串解析器的麻煩,我該如何處理它?
- 29. 如何使用按位運算符'添加'兩個數字?
- 30. 我應該如何處理XML :: RPC和Drupal中的數字字符串?
谷歌它問;) – yuan 2013-02-27 14:00:50
@張元:SO存在是有原因的。您可以建議使用位於右上角的搜索欄,或者甚至更好 - 建議重複的問題。 「谷歌它」不是一個正確的答案。 – 2013-02-27 14:30:19