本文主要是介绍ca37a_demo_c++__位操作符txwtech位取反_位左移_位右移_位异或_bitset对象,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
/*
ca37a_demo_c++__位操作符txwtech
c传统位操作符: 一般建议用无符号类型。unsigned char bits=0227
~ ,位取反
<<,位左移
>>,位右移
&, 位与---------都是1则为1,否则为0。注意:两个&&是逻辑与
^ ,位异或-------相同为0,否则为1
| ,位或---------只要有一个为1,结果就是1,否则位0.注意:两个||是逻辑或
C++ bitset对象
a.set
a.reset
a[27]
重载:将移动操作用于IO
cout<<"hi;
cin>>a;
*/
/*
ca37a_demo_c++__位操作符txwtech
c传统位操作符: 一般建议用无符号类型。unsigned char bits=0227
~ ,位取反
<<,位左移
>>,位右移
&, 位与---------都是1则为1,否则为0。注意:两个&&是逻辑与
^ ,位异或-------相同为0,否则为1
| ,位或---------只要有一个为1,结果就是1,否则位0.注意:两个||是逻辑或C++ bitset对象
a.set
a.reset
a[27]
重载:将移动操作用于IO
cout<<"hi;
cin>>a;
*/
#include <iostream>using namespace std;int main()
{//int a = -127;//位操作一般建议用无符号类型unsigned char bits = 0227;//八进制,010010111->151bits = ~bits;//取反 001101000->104(十进制)cout << (int)bits << endl;//输出104bits = 1;unsigned char result;result=bits << 1;//左移1位cout << (int)result << endl;//结果变成2result = bits << 2;//左移2位cout << (int)result << endl;//结果变成4bits = 64;//01000000result = bits >> 3;//00001000,右移3位cout << (int)result << endl;//结果变成8unsigned char b1 = 0145; //01100101unsigned char b2 = 0257; //10101111unsigned char result1 = b1 & b2;//位与运算, 00100101,都是1则为1,否则为0//注意:两个&&是逻辑与cout << (int)result1 << endl;result1 = b1 | b2;//位或运算cout << (int)result1 << endl;result1 = b1 ^ b2;//异或运算,相同为0,否者为1cout <<"异或结果:"<< (int)result1 << endl;//getchar();return 0;
}
/*ca37b_demo_c++*/
#include <iostream>
#include <bitset>using namespace std;int main()
{bitset<30> a;//30个学生,30个二进制位,记录及格(1)与不及格(0).a自动初始化unsigned long b;//long 32位a.set(27);//c++方法,第27位置1b = b | (1UL << 27);//c方法a.reset(22);//c++方法,第22位置0b = b & ~(1UL << 22);//c方法//b&=~(1UL << 22);//简写方法bool status;status = a[27];c++方法,读取状态,是否及格status = b & (1UL << 27);//与第27位做位与运算,c做法cout << status << endl;//cout << 10 < 42; cout << "10<42 is: 1:true,0:false: " << (10 < 42) << endl;return 0;
}
这篇关于ca37a_demo_c++__位操作符txwtech位取反_位左移_位右移_位异或_bitset对象的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!