• 位运算:c 按位与 &


    位运算:
    1. 按位与 &;9&5;任何运算符都有运算结果;
    2. 针对二进制进行计算;只有两个对应位都为1时,结果才为1;否则为0;
    3. 按位与的作用是能精确知道哪位是多少,获取某个精确的二进制位;

    按位或 |

    1. 对应的两个二进位有一个为1时,就为1;9|5

    按位异或 ^

    1. 9 ^ 5;当两个二进制位不相同是为1;
    2. 相同数值进行异或,结果肯定是0,比如9 ^ 9为0;
    3. 异或的值可以交换位置;9^5^6 == 9^6^5;
    4. 任何数值跟0进行异或,结果还是原来的数值;
    5. a^b^a==b

    按位取反,包括符号位;

    1. 是单目运算符;~9;

    左移

    1. 9<<1;把整数全部往左边移动n位(a<<n),往左边一挪,最高位会舍弃,最低位补0;9往左挪动一位,就是9*2的1次方==18;往左挪动2位,就是9*2的2次方==36;
    2. 最高位舍弃可能会导致正负性改变;

    右移

    1. 右移一位,是保留符号位,空的位置用符号位来补齐;8>>1得到4;8>>2得到2;
    2. 8>>n;就得到8/2的n次方;
    3. 左移是乘法;右移是除法;
    4. a=b-1;b=b-a;a=b+a;或者a = a^b;b=a^b;a=a^b;用位与运算是a&1 ==1是奇数;a&1 ==0是偶数;
    5. 拿值就是位与1;将9打印出2进制出来;可以用右移方法;number >>30 & 1;
    6. int temp = (sizeof(number)<<3) -1;while(temp>=0){int value = number>>temp & 1;printf("%d",value);temp--;if((temp+1)%4==0){printf("")}}printf(" ")
  • 相关阅读:
    我所知道的数据库8-DML语言
    我所知道的数据库7-DDL语言(续2)
    CSS3 3D transform变换
    深入理解Node.js的异步编程风格(转载)
    ECMAscript
    JavaScript高级部分概念用法
    前端工程师面试题汇总
    10个最常见的HTML5中的面试题及答案
    js事件流
    本地储存
  • 原文地址:https://www.cnblogs.com/williamliuwen/p/5367271.html
Copyright © 2020-2023  润新知