位运算符
void module1()
{
int a = 67;
int b = 109;
cout << bitset<16>(a) << endl;
cout << bitset<16>(b) << endl;
cout << bitset<16>(a & b) << " &" << endl;
cout << bitset<16>(a | b) << " |" << endl;
cout << bitset<16>(a ^ b) << " ^" << endl;
cout << bitset<16>(!a) << " !a" << endl;
}
地址和指针
void module2()
{
int a = 10;
int *p = &a;
cout << p << " p's value, a's address" << endl;
cout << &p << " p's address" << endl;
cout << *p << " p's point to value";
}
位移运算符
void module3()
{
int a = 10;
cout << bitset<16>(a) << endl;
a = a << 1;
cout << bitset<16>(a) << endl;
a = a >> 1;
cout << bitset<16>(a) << endl;
}
数字在 bitset 下的表现
void module4()
{
short x = 15213;
short y = -15213;
short a = 0;
short b = -1;
cout << bitset<16>(x) << endl;
cout << bitset<16>(y) << endl;
cout << bitset<16>(a) << endl;
cout << bitset<16>(b) << endl;
}
bitset 用法
void module5()
{
unsigned short a = 16;
auto a_set = bitset<5>(a);
cout << a_set[4] << endl;
cout << a_set << endl;
}
uint castTo int 转换
void module6()
{
const char set[6] = "11111";
auto a_set = bitset<5>(set);
auto a = a_set.to_ulong();
char casted_set[6];
for (int i = 0; i < 5; i++)
{
casted_set[i] = '1' - set[i];
}
auto unsigned_set = bitset<5>(casted_set);
auto unsigned_a = (int)unsigned_set.to_ulong() - 1;
cout << "signed a: " << a << endl;
cout << "unsigned a: " << unsigned_a << endl;
}