// chapter4a01.cpp
//理解表达式
//掌握常用运算符的用法
//熟悉使用逻辑运算符
using namespace std;
int main()
{
int num1 = 100, num2 = 100, num3 = 100;
//演示复合运算符
num1 += 90; // num = num + 90 190
cout << num1 << endl;
num2 /= 90; // num = num / 90 1
cout << num2 << endl;
num3 %= 90; // num = num % 90 10
cout << num3 << endl;
//关系运算符(< > >= <= == != )
//C语言中,0表示假,非0表示真
//C++中,引入了布尔类型bool
cout << boolalpha; //0 打印 false; 1打印 true
cout << "15 > 20 吗?" << (15 > 20) << endl; //15 > 20 吗?false
cout << "15 < 20 吗?" << (15 < 20) << endl; //15 < 20 吗?true
//逻辑运算符(&& || !)
cout << (!(15 > 10)) << endl; // false
cout << ((15 > 10) && (15 < 20)) << endl; // true
//位运算符(&按位与 |按位或 ~按位非 ^按位异或(同假异真) << 左移 >>右移)
cout << (10 & 5) << endl; // 0
cout << (~2) << endl; // -3
cout << (2 << 3) << endl; // 16 10(二进制)-> 10000(二进制) = 16
cout << (16 >> 2) << endl; // 4 1000(二进制)-> 100(二进制) = 4
/*
*按位非
*1、二进制取反
* 00000010 正数
* 11111101 负数
* 2、负数二进制转化为10进制:将二进制取反,然后+1,结果为负
* 00000010 +1 = 3
*/
//sizeof 运算符 :测量数据类型占用内存空间的大小 sizeof(type_name)
cout << sizeof(char) << endl; //1
cout << sizeof(short) << endl; //2
cout << sizeof(int) << endl; //4
cout << sizeof(string) << endl; //28
cout << sizeof("中文") << endl; //5 = 2 + 2 + 1
cout << sizeof(12.0) << endl; //8 double类型
}
// chapter4a02.cpp
/*运算符优先级
*单目运算符 ! ~ ++ -- sizeof
*!
*算术运算符
*关系运算符
* &&
* ||
* 赋值运算符
*/
using namespace std;
int main()
{
cout << !((18 + 45 % 2 * 5) > 16) << endl; // 0
int num = 5 > 6 ? 10 : 12; // 12 三元运算符
cout << num << endl;
}