zoukankan      html  css  js  c++  java
  • 位运算操作

    #include <stdio.h>

    int main() {
    int a = 3; // 二进制为 0000 0000 0000 0000 0000 0000 0000 0011
    int b = 6; // 二进制为 0000 0000 0000 0000 0000 0000 0000 0110
    int c = -4; // 二进制为 1111 1111 1111 1111 1111 1111 1111 1100 (绝对值取反加一)
    // 位运算符有: & | ^ ~ << >> , 运算对象是 int 型 和 char 型
    // 补位原则: 不同长度的数据之间进行位运算,将按右侧对齐的原则进行处理,即按长度较大的数据进行处理,将长度较小的数据在左侧进行补位。
    // 例如:一个char型数据和一个int型数据进行位操作,先将char型数据左侧位补齐,再进行位运算。补位的原则是,对于正数和无符号数,左侧补0,对于负数,左侧补1。



    // & : 与运算符 ,优先级:逻辑运算符和关系运算符之间,1+1=1,0+1=0,0+0=0;
    // | : 或运算符,优先级:逻辑运算符和关系运算符之间, 1+1=1, 0+1=1; 0+0=0;
    // ^ : 异或运算符,优先级:逻辑运算符和关系运算符之间, 1+1=0, 0+1=1; 0+0=1;
    // ~ :取反运算符(优先级要高于算术运算符)0变1,变0



    // << : 位移运算符,运算规则:左移 ,优先级: 关系运算符和算数运算符之间


    // 5 << 2, 相当于把5的二进制 向左移动2位,后面补0,结果为int型的5乘2的2次方
    // 5 << 3, 相当于把5的二进制 向左移动2位,后面补0,结果为int型的5乘2的3次方
    // 5 << 4, 相当于把5的二进制 向左移动2位,后面补0,结果为int型的5乘2的4次方



    // >> : 位移运算符 ,运算规则:右移 ,优先级: 关系运算符和算数运算符之间


    // 5 >> 2, 相当于把5的二进制 向右移动2位,前面补0,结果为int型的5除2的2次方
    // 5 >> 3, 相当于把5的二进制 向右移动2位,前面补0,结果为int型的5除2的3次方
    // 5 >> 4, 相当于把5的二进制 向右移动2位,前面补0,结果为int型的5除2的4次方
    printf("%d", a);
    return 0;
    }

  • 相关阅读:
    第十三周助教小结
    记事本
    第十二周助教小结
    与周老师会谈之后的感想
    第十一周总结
    第十周助教总结
    听周筠老师一席话,受益匪浅
    2020软件工程作业04
    2020软件工程作业02
    2020软件工程作业01
  • 原文地址:https://www.cnblogs.com/hello-dummy/p/9217052.html
Copyright © 2011-2022 走看看