C++位运算符详解(异或运算符和移位运算符)
2019/7/10 22:58:06
本文主要是介绍C++位运算符详解(异或运算符和移位运算符),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
什么是位运算
位运算符按二进制进行运算,这些运算符只能用于整数类型的操作。如:char,short,int,long
通过位运算符来获取高位值和低位值
int a=0x1234;
int high,low;
high = (a>>8) &0x00ff;
low = a & 0x00ff;
左移运算符和右移运算符(<<和>>)
左移是将一个二进制数,移动若干位,右边空出的位置用0来填补,高位左移溢出应该舍弃该高位。
如:inta = 8, a = 00001000;
a<<2则a =00100000;所以a的值为a*2^2 = 32;
左移过程中,如果这个数被溢出舍弃的高位不包含1,则移完后的值就是这个值*2^移动的位数.
右移是将一个二进制数,右移若干位,左边空出的位置用0来填补(如果是无符号类型,如果是有符号类型则根据操作系统的规定来补全。有些操作系统是用符号位来填补,有些操作系统默认是按照0来填补)。
异或(^)
两个参加二进制运算的值相同为0,否则为1
1. 与0异或,保留原来的值
2. 交换两个值,不用临时变量
a=3,b=4
a= a^b;
b= b^a;(b=b^a^b)
a= a^b;(a^b^a^b^b)
以上这篇C++位运算符详解(异或运算符和移位运算符)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持找一找教程网。
这篇关于C++位运算符详解(异或运算符和移位运算符)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25【机器学习(二)】分类和回归任务-决策树(Decision Tree,DT)算法-Sentosa_DSML社区版
- 2024-11-23增量更新怎么做?-icode9专业技术文章分享
- 2024-11-23压缩包加密方案有哪些?-icode9专业技术文章分享
- 2024-11-23用shell怎么写一个开机时自动同步远程仓库的代码?-icode9专业技术文章分享
- 2024-11-23webman可以同步自己的仓库吗?-icode9专业技术文章分享
- 2024-11-23在 Webman 中怎么判断是否有某命令进程正在运行?-icode9专业技术文章分享
- 2024-11-23如何重置new Swiper?-icode9专业技术文章分享
- 2024-11-23oss直传有什么好处?-icode9专业技术文章分享
- 2024-11-23如何将oss直传封装成一个组件在其他页面调用时都可以使用?-icode9专业技术文章分享
- 2024-11-23怎么使用laravel 11在代码里获取路由列表?-icode9专业技术文章分享