zoukankan      html  css  js  c++  java
  • 位运算【C++学习(计蒜客)】

    C++提供了位运算操作符,使程序可以直接对内存进行操作。C++的这个特色大大提高了C++程序的执行能力。例如使用位操作运算可以将一个存储单位中的各个二进制位左移或右移一位,也可以将一个存储单位中所有的二进制位取反,这些操作多数要比直接进行数值上的运算要高效的多。
    学习位运算之前,我们先来了解几个概念:
    字节:字节是数据存储和数值计算的基本单位,也是从内存读取数据和写入数据的最小单位,单位是byte
    位:在操作系统中,字节还可以划分为更小的单位——位。一个字节由8个位组成,每个位的值为0或1,单位bit
    取反(~):即将1变成0,0变成1,也就是说:
    ~1=0;
    ~0=1;
    取反就是将一个数的二进制码的补码取反,正数的补码是本身,负数的是按位取反加1.
    且运算(&):或者叫与运算,基本的位运算符之一。形式为“数值1 & 数值2”,比方说:
    1&0=0;
    或运算(|):基本的位运算符之一,形式为“数值1|数值2”,比方说:
    1|0=1;
    移位运算:包括左移运算(<<)右移运算(>>),形式为“数值1<<数值2”(>>同理)表示数值1的全部二进制位向左(右)移数值2位

    取反训练:

    #include<iostream>
    using namespace std;
    int main(){
        int a;
        cin>>a;
        cout<<hex<<a<<" "<<~a<<endl;
        return 0;
    }

    移位操作训练:
    由于二进制各位之间的关系恰位两倍,左移一位其实可以起到了乘以2的作用,右移一位则可以起到除以2的作用

    #include<iostream>
    using namespace std;
    int main(){
        int a;
        a=5;
        a=a<<2;
        cout<<a<<endl;
        return 0;
    }
    
  • 相关阅读:
    vue实现 toggle显示隐藏效果
    html+css奇淫技巧 3 教你如何伪类控制字体间距左右排版
    js 数组,字符串,json互相转换
    forEach 与for in
    js/jq 选项卡开发js代码
    html奇淫技巧 2 教你如何进行图文环绕布局 原创
    2019-05-07 开始记笔记vue
    vue src 拼接
    js 反选 全选看出你处于哪个阶段!
    JS获取浏览器窗口大小 获取屏幕,浏览器,网页高度宽度(转载)
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/5934434.html
Copyright © 2011-2022 走看看