• 位运算


    操作数:3--> 0000 0011 --> 1*2^1+1*2^0=3
    操作数:5--> 0000 0101 --> 1*2^2+0*2^1+1*2^0=5

    (1)取反(~):只对一个操作数进行运算,将操作数二进制中的 1 改为 0,0 改为 1。
    3       0 0 0 0 0 0 1 1
    —————————
    ~      1 1 1 1 1 1 0 0

     

    (2)按位与(&):参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位同时为 1,那么计算结果才为 1,否则为 0。因此,任何数与 0 进行按位与运算,其结果都为 0。
    3      0 0 0 0 0 0 1 1
    5      0 0 0 0 0 1 0 1
    —————————
    &     0 0 0 0 0 0 0 1

     

    (3)按位或(|):参与运算的数字,低位对齐,高位不足的补零。如果对应的二进制位只要有一个为 1,那么结果就为 1;如果对应的二进制位都为 0,结果才为 0。
    3      0 0 0 0 0 0 1 1
    5      0 0 0 0 0 1 0 1
    —————————
    |       0 0 0 0 0 1 1 1

     

    (4)按位异或(^):参与运算的数字,低位对齐,高位不足的补零,如果对应的二进制位相同(同时为 0 或同时为 1)时,结果为 0;如果对应的二进制位不相同,结果则为 1。
    3      0 0 0 0 0 0 1 1
    5      0 0 0 0 0 1 0 1
    —————————
    ^      0 0 0 0 0 1 1 0


    (5)左移(<<):按二进制形式把所有的数字向左移动对应的位数,高位移出(舍弃),低位的空位补零。
            0 0 0 0 0 0 1 1
    —————————
    <<   0 0 0 0 0 1 1 0
    向左移一位,相当于乘以2;向左移两位,相当于乘以4;

     

    (6)右移(>>):按二进制形式把所有的数字向右移动对应的位数,低位移出(舍弃),高位的空位补零。
            0 0 0 0 0 0 1 1
    —————————
    >>   0 0 0 0 0 0 0 1
    向右移一位,相当于除以2;向右移两位,相当于除以4

    —转载请注明出处
  • 相关阅读:
    百度echarts插件x轴坐标显示不全决解方法
    Laravel
    Mysql 递归获取多重数组数据
    Laravel 怎么使用资源控制器delete方法
    Laravel 怎么在 blade 视图中将带 HTML 字符原样输出
    laravel sql复杂语句,原生写法----连表分组
    mysql连表分组报错---- sql_mode=only_full_group_by问题解决
    Bootstrap -- 模态框实现拖拽移动
    xcode6模拟器UITextField不能自动弹出键盘
    在Linux系统中使用rpm包安装FTP服务
  • 原文地址:https://www.cnblogs.com/landiss/p/14326882.html
Copyright © 2020-2023  润新知