位操作的原理
来源:互联网 发布:mac 桌面文件太多 编辑:程序博客网 时间:2024/06/06 15:47
在C语言中运算最快的应该就是对数据进行位操作了,位操作有很多,如位移、位与、位或、位异或,下面我们就来看看那这些操作的实现,在这里要提醒大家的是位的操作不会改变数据本身,只有当你让初始化后的变量等于它本身的位操作后变量值才会改变,那么下面我们就来看看那这些位操作的实现过程:
#include<iostream>using namespace std;/*1、位移,位移有左移和右移两种,位移操作符为<<和>>,分别是左移操作符和右移操作符,左移的时候就是把数据的二进制位的每位向左移一定的位,移动过的低位用0补齐;右移同理,移动过的高位用0补齐用0补齐称为逻辑右移,有的系统用1补齐,称为算术右移;注意整形的符号位,位移会出现溢出现象。*/void Move_left(int x){ cout<<" "<<"Move_left:>"<<(x << 4)<<endl;}void Move_right(int x){ cout<<" "<<"Move_right:>"<<(x >> 4)<<endl;}//2、位与运算,和数学中的与操作一样,相同为真,相异为假,运算符:& void Bitwise_AND(int x, int y){ cout<<" "<<(x & y)<<endl;}//3、位或,运算符:|, 只有在0|0的时候是0,其他都是1;void Bitwise_OR(a , b){ cout<<" "<<(x | y)<<endl;}//4、位异或,运算符: ^,0^1= 1^0=1; 1^1 = 0^0 = 0;void Bitwise_XOR(a , b){ cout<<" "<<(x ^ y)<<endl;}int main(){ int a = 10;//二进制1010 int b = 14;//二进制1110 Move_left(a); Move_right(a); cout<<a<<"和"<<b<<"的位与操作:>" Bitwise_AND(a, b); cout<<a<<"和"<<b<<"的位或操作:>" Bitwise_OR(a , b); cout<<a<<"和"<<b<<"的位异或操作:>" Bitwise_XOR(a , b); return 0;}
大家有什么新的认识欢迎留言讨论,相互进步^o^
1 0
- 位操作的原理
- 6种常用位操作符的原理及其用途
- 简单的位操作
- C的位操作
- 位向量的操作
- c的位操作
- C的位操作
- 位的操作
- 常用的位操作
- 位域的操作
- Java的位操作
- 位操作的基础
- 对于位的操作
- php的位操作
- 位操作的练习
- 位操作的问题
- stm32的位操作
- 字节的位操作
- volley网络请求框架+CheckBox实现全选及单选
- Tomcat配置JNDI资源(Tomcat配置连接池)
- ACM线段树。第兵布阵
- 【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介
- 学习记录 复杂网络MATLAB工具箱
- 位操作的原理
- Git 学习-第一节:基础和原理
- C++ 虚函数&纯虚函数&抽象类&接口&虚基类
- Spring整合定时任务调度框架Quartz实
- 项目维护过程中可能用到的sql积累
- 勉強する
- 深入PHP面向对象、模式与实践——执行及描述任务(4)
- Data Analysis学习笔记 --- Python数据清洗对数据分组
- 构造函数和析构函数