普通的位运算 描述: 求下面各个位运算的值 a&c b|d a^d ~a

67 阅读1分钟

1 题目

功能:普通的位运算 描述: 求下面各个位运算的值 a&c b|d a^d ~a

2 思路

运算符含义示例举例
&位ANDx&y如果x和y都为1,则得到1;如果x或y任何一个为0,或都为0,则得到0
位ORxy如果x或y为1,或都为1,则得到1;如果x和y都为0,则得到0
位XORx^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