1 题目
功能:普通的位运算 描述: 求下面各个位运算的值 a&c b|d a^d ~a
2 思路
运算符 | 含义 | 示例 | 举例 | ||
---|---|---|---|---|---|
& | 位AND | x&y | 如果x和y都为1,则得到1;如果x或y任何一个为0,或都为0,则得到0 | ||
位OR | x | y | 如果x或y为1,或都为1,则得到1;如果x和y都为0,则得到0 | ||
位XOR | x^y | 如果x或y的值不同,则得到1;如果两个值相同,则得到0 | |||
~ | 位NOT(I的补码) | ~x | 如果x为0,则得到1,如果x是1,则得到0 |
3 代码
#include <stdio.h>
#include <stdlib.h>
/**
功能:普通的位运算
描述:
求下面各个位运算的值
a&c
b|d
a^d
~a
**/
int main(int argc, char const *argv[]) {
unsigned result;
int a, b, c, d;
a = 2;
b = 4;
c = 6;
d = 8;
printf("a=%d,b=%d,c=%d,d=%d", a, b, c, d); // 输出变量a、b、c、d四个数的值
result = a &c; // a与c的结果赋给result
printf("\na&c=%u\n", result); // 将结果输出
result = b | d; // b|d的结果赋给result
printf("b|d=%u\n", result); // 将结果输出
result = a ^ d; // a^d的结果赋给result
printf("a^d=%u\n", result); // 将结果输出
result = ~a; // ~a的结果赋给result
printf("~a=%u\n", result); // 将结果输出
}
示例结果:
$ gcc ex084.c -o demo
$ ./demo
a=2,b=4,c=6,d=8
a&c=2
b|d=12
a^d=10
~a=4294967293