普通位运算

感情迁移 提交于 2020-02-29 03:01:23
#include <stdio.h>

int main(void)
{
    //定义一个无符号字符型变量,此变量只能用来存储无符号数

    unsigned char result;

    int a,b,c,d;
    a = 2;
    b = 4;
    c = 6;
    d = 8;

    //对变量进行“按位与”操作
    result = a & c;
    printf("result = %d\n",result );   //2

    //对变量进行“按位或”操作
    result = b | d;
    printf("result = %d\n",result );   //12

    //对变量进行“按位异或”操作
    result = a ^ d;
    printf("result = %d\n",result );   //10

    //对变量进行“取反”操作
    result = ~a;
    printf("result = %d\n",result );   //253

}

/**
    按位与(&)运算符:参加运算的两个运算符,如果都为1,则该位为1,否则为0
    按位或(|)运算符:两个相应位中只要有一个为1,则该位的结果为1.
    按位异或(^)运算符:参加运算的两个相应位,同号则结果为0(假),异号则结果为1(真)
    取反(~)运算符:他是一个单目(元)运算符,用来对一个二进制数按位取反,即将0变为1,1变为0。

    注意点:
       --位运算符是对二进制按位进行运算,将十进制数转换为二进制然后按照进行上面的规则进行相关的操作。
       --位运算符中除了取反运算符外,其他的均为二目运算符,既要求两侧各有一个变量
       --位运算符是对字节或字节中的位进行测试、置位或者移位处理,这里字节或者字是针对c标准的char和int数据类型而言,因此,位操作不能用于float、double、long double、void及其他复杂类型
*/

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!