C++按位运算符
2015-10-24 14:05
309 查看
位运算是指按二进制进行的运算。在程序中,常常需要处理二进制位的问题。C/C++语言提供了6个位操作运算符。这些运算符只能用于整型操作数,即只能用于带符号或无符号的char,short,int与long类型。在实际应用中,建议用unsigned整型操作数,因为带符号操作数可能因为不同机器结果不同。
C/C++位操作运算符
0&0=0;
0&1=0;
1&0=0;
1&1=1;
也就是
另外还有两个
<<左移操作,每移一位就相当于乘以2,例如13<<3 == 13*(2的3次方)
>>右移操作,相当于除以2
左移右移都不会改变自身的数值
操作符 | 功能 | 用法 |
~ | 位求反 | ~expr |
<< | 左移 | expr1 << expr2 |
>> | 右移 | expr1 >> expr2 |
& | 位与 | expr1 & expr2 |
^ | 位异或 | expr1 ^ expr2 |
| | 位或 | expr1 | expr2 |
0&1=0;
1&0=0;
1&1=1;
也就是
& | 0 | 1 |
0 | 0 | 0 |
1 | 0 | 1 |
| | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 1 |
^ | 0 | 1 |
0 | 0 | 1 |
1 | 1 | 0 |
>>右移操作,相当于除以2
左移右移都不会改变自身的数值
#include<iostream> #include<vector> using namespace std; int main() { int a = 43; cout << (a >> 2) << endl;//必须用括号括起来 cout << a << endl; //a>>2相当于a/(2的2次方)==a/4==43/4 /* 10 43 */ return 0; }
相关文章推荐
- c++web方案
- C语言:一组数据中只有一个数字出现了一次。其他所有数字都是成对出现的。请找出这个数字。(
- 【C语言】【笔试题】找出一组数据中成单出现的数字,其他所有数字都是成对出现的。(移位)
- 【C语言】不使用(a+b)/2这种方式,求两个数的平均值。
- 【C语言】【笔试题】编写函数: unsigned int reverse_bit(unsigned int value); 翻转二进制序列
- 【C语言】【笔试题】两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同
- 对于sizeof的含义、应用及易混点的解析
- VC++ 将资源位图画到窗口上去的方法
- C++函数指针简介
- C++函数指针简介
- C语言:不使用(a+b)/2这种方式(会溢出),求两个数的平均值
- C语言:编写函数将一个整数的二进制位模式从左到右翻转后的值输出
- C语言:两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同(模除、移位)
- c语言 常量
- C++ 栈
- 总结sublime c++编译环境搭建 | 中文乱码问题解决方案 |sidebar配置 |sublime最佳插件列表|最佳主题方案
- C++ STL 排序(Sort)
- STL之hashset实现
- [C++] Operator Overload
- 黑马程序员——OC语言日志——NSString前后缀的检查和NSRang的使用