#include
using namespace std;
int main()
{
unsigned char bits=0227;/采用位操作运算时,要采用无符号数进行运算,
因为C语言和C++没有明确的标准规定位操作如何处理符号位,
所以当我们在使用位操作的时候不要用带符号的类型,要用没符号的类型/
/0227为8进制数,去掉前面的0就是十进制,也可以在前面增加0X为16进制/
bits=~bits;/对bits进行位操作取反//八进制0227二进制为10010111对应十进制为151.位取反后对应的二进制为01101000对应的十进制为104/
cout<<“10010111取反的结果为:”<<(int)bits<<endl;/运行的结果为104//bits前加(int)是将前面的unsigned类型转换/
bits=bits<<1;/*01101000左移一位的结果为11010000对应的十进制应该为208*/
cout<<"左移一位的结果为:"<<(int)bits<<endl;
bits=bits>>1;/*11010000右移一位的结果为01101000对应的十进制应该为104*/
cout<<"右移一位的结果为:"<<(int)bits<<endl;
bits=bits<<2;/*01101000左移2位的结果为10100000对应的十进制应该为160*/
cout<<"左移两位的结果为:"<<(int)bits<<endl;
return 0;
}