例如,假设我想在124和100之间按位计算AND函数,我该怎么做呢?请简要解释一下。谢谢。
答案 0 :(得分:9)
int number = 124 & 100
说明:
将124转换为按位格式,假设为32位整数。 =
0000 0000 0000 0000 0000 0000 0111 1100
将100转换为按位格式,假设为32位整数。 =
0000 0000 0000 0000 0000 0000 0110 0100
ANDING按位:
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
中!
AND门真值表是:
+-------+---------+
| 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!");
}
}
答案 1 :(得分:1)
使用C &
中的按位和运算符,例如124 & 100
答案 2 :(得分:0)
只需使用&
运算符:
int a = 124, b = 100;
int c = a & b;
答案 3 :(得分:0)
只需使用result = a & b
...