zoukankan      html  css  js  c++  java
  • C语言位运算

    参考资料:

    http://baike.baidu.com/view/379209.htm

    http://wenku.baidu.com/view/a3c70f641ed9ad51f01df2f1.html

    (1)     &     按位与   如果两个相应的二进制位都为1,则该位为1,否则为0

    应用:二进制取位。

    例如:a & 1 可以用来判断a的奇偶,结果为1则是奇数,为0则是偶数。

    (2)    |      按位或   两个相应的二进制位中只要有一个为1,则该位为1,否则为0

    应用:对二进制位上的特定位进行无条件赋值。

    例如:a | b 就是把二进制最末位强制改为1,如果需要改为零,则 a | b - 1 即可。其实际意义是把这个数强行变为最接近的偶数。

    (3)   ^     按位异或   两个相应的二进制位值相同为0,不同为1

    应用:1,对二进制位的特定一位进行取反操作,因为异或可以这样定义:0和1异或0都不变,异或1则取反。

             2,异或运算的逆运算是它本身,即:(a^b)^b = a;  可以用于简单加密。

             3,用于交换两个变量的值。a=a^b; b=b^a; a=a^b;

    (4)   ~   按位取反   指定位1变0,0变1

    应用:求整数的二进制反码。

            如果~a,a为无符号整数,则得到的值是它与该类型上界的差。

    (5)   <<   左移    用来将一个数的各二进制位左移N位,右边补零,高位溢出舍去

    应用:a << b   等效于  a乘以2的b次方

    (6)   >>   右移    将一个数各二进制位右移N位,低位舍弃,无符号整数高位补零,有符号整数高位情况视系统而定

    应用: a >> b   等效于  a除以2的b次方

  • 相关阅读:
    java高级语法4:集合
    java高级语法3:异常和注解
    Java高级语法2:Lambda表达式
    VS编译时卡在正在从以下位置加载xxx.dll符号
    mysql中的外键
    localhost和127.0.0.1的区别
    添加依赖项
    代码版本控制——TFS
    优化版冒泡排序
    visual studio vode 汉化
  • 原文地址:https://www.cnblogs.com/GBRgbr/p/2612849.html
Copyright © 2011-2022 走看看