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标签实现分页
    Servlet过滤器介绍之原理分析
    java超强分页标签演示
    Mybatis中resultMap与resultType区别
    洛谷 P1002 过河卒
    洛谷 P2181 对角线
    ACM常数优化
    2020 年百度之星&#183;程序设计大赛
    AtCoder Beginner Contest 171 E
    AtCoder Beginner Contest 171 D
  • 原文地址:https://www.cnblogs.com/GBRgbr/p/2612849.html
Copyright © 2011-2022 走看看