位运算【C++学习(计蒜客)】

本文介绍了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;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值