zoukankan      html  css  js  c++  java
  • 位运算符

     

    一、位运算符C++语言提供了六种位运算符:

     

    & 按位与

    | 按位或

    ^ 按位异或

    ~ 取反

    << 左移                                              

    >> 右移

    用法:

    1.按位与运算符 &

    按位与运算符是双目运算符,其功能是将参与运算的两操作数各自对应的二进制为进行于操作。只有对应的两个二进制位均为1 是,结果对应的二进制位才为 1,否则为0.例如:表达式“21&18”的计算结果是16(即二进制数10000),因为:

    21用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0101

    18用二进制表示就是:0000 0000 0000 0000 0000 0000 0001 0010

    按位与所得结果是:   0000 0000 0000 0000 0000 0000 0001 0000(21和18左起第五位都是1,对应出结果 1)

    与上述方法类似可得出 | 和^ 的结论,即:

    2.按位或运算符“|”是双目运算符。其功能是将参与运算的两操作数各自对应的二进制位进行或操作。只有对应的两个二进制都是0 是,结果对应的二进制位才是0,否则为1.例如表达式“21|18”的值是23(即二进制数10111)。

    3.按位异或运算符“^”是双目运算符。其功能是将参与运算的两操作数各自对应的二进制为进行异或操作。只有对应的两个二进制位不相同是,结果对应的二进制唯才是1,否则为0.例如表达式“21^18”的值是7(即二进制数111).

    4.按位非运算符~是单目运算符。其功能是将操作数中的二进制位0变成1,1变成0.例如,表达式“~21”的值是无符号整型数0xffffffea(十六进制)。

    5. 左移运算 左移运算符“<<”是双目运算符。其功能把“<< ”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,

    高位丢弃,低位补0。例如: a<<4 指把a的各二进位向左移动4位。如a=00000011(十进制3),左移4位后为00110000(十进制48)。

    6. 右移运算右移运算符“>>”是双目运算符。其功能是把“>> ”左边的运算数的各二进位全部右移若干位,“>>”右边的数指定移动的位数。

    例如:设 a=15,a>>2 表示把000001111右移为00000011(十进制3)。应该说明的是,对于有符号数,在右移时,符号位将随同移动。当为正数时, 最高位补0,而为负数时,符号位为1,最高位是补0或是补1 取决于编译系统的规定。Turbo C和很多系统规定为补1。

    例子

    void main(){

    unsigned a,b;

    printf("input a number: ");

    scanf("%d",&a);

    b=a>>5;

    b=b&15;

    printf("a=%d\tb=%d\n",a,b);

    }

  • 相关阅读:
    jsp——学习篇:简单使用CSS
    MongoDB分片式服务器集群配置
    PHP上传文件
    【转】【thinkphp3.x】thinkphp3.x中display方法及show方法的使用
    (转)Mysql用户与权限管理
    MonkeyRunner 之如何获取APP的Package Name和Activity Name
    一个典型的PHP分页实例代码分享
    HTML meta charset 定义网页编码信息
    【转】PHP连接MySQL数据库
    一个漂亮的php验证码类(分享)
  • 原文地址:https://www.cnblogs.com/qiqiBoKe/p/2791593.html
Copyright © 2011-2022 走看看