c++运算符

文章目录

  • 运算符
    • 位运算符
    • 类型转换

运算符

#include
using namespace std;

int main()
{
	// 算术运算符
	cout << "1 + 2 = " << 1 + 2 << endl; 
	cout << "1 + 2 - 3 * 4 = " << 1 + 2 - 3 * 4 << endl;
	
	short a = 3;
	long long b = 22345;
	cout << "a * b = " << a * b << endl;  // short 会转化为long long 再计算
	
	// 复合运算
	sum += a;

	// 递增递减运算符
	int i = 0;
	j = ++i; //j = 1,先+再返回
	k = i++; //k = 0,先返回再+
	
	// 逻辑运算符
	!(1 < 2 && 3 > 5); //逻辑非
	1 < 2 && 3 > 5; //逻辑与 
	1 < 2 || 3 > 5; //逻辑或
	// 短路求值
	// 逻辑运算会从左边开始计算,如果左侧可以决定结果,则右侧不做计算。

	// 条件运算符
	i = 0;
	cout << (1 < 2 && ++i) ? "true" : "false" << endl;
}

位运算符

c++运算符_第1张图片
移位运算
c++运算符_第2张图片
c++运算符_第3张图片

unsigned char bits = 0xb5;
cout << "bits左移两位:" << (bits << 2) << endl; //乘4
cout << "bits左移两位:" << hex << (bits << 2) << "\n" << dec << (bits << 2) << endl; //hex和dec是控制输出流

位逻辑运算
c++运算符_第4张图片
c++运算符_第5张图片
判断此处~uc1是多少:
int类型–》看首位–》1(负数)–》负数是以补码形式存储–》补码求源码(-1再取反)–》最后四位(1010–>1001–>0110)–》所以 ~uc1 其实是 -6

类型转换

隐式类型转换

short s = 12.3 + 25;
cout << "s = " << s << endl;
cout << "s长度为:" << sizeof(s) << endl;
cout << "12.3 + 25 = " << (12.3 + 25) << endl;
cout << "12.3 + 25 长度为:" << sizeof(12.3 + 25) << endl;
//输出
// s = 37
// s长度为:2
// 12.3 + 25 = 37.3
// 12.3 + 25 长度为:8

// 关系运算中的类型转换
int a = -1;
cout << ((0 < a < 100) ? "true" : "false") << endl; //true,因为逻辑运算从左向右,0

强制类型转换

int total = 20, num = 6;
double avg = total / 6;
cout << avg << endl;

// c语言风格
cout << (double)total / num << 6;

// c++风格
cout << double(total) / num << 6;

//c++强制类型转换运算符
cout << static_cast<double>(total) / num << 6;

你可能感兴趣的:(C++学习记录,c++,算法,开发语言)