• 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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    位运算符

    在这里插入图片描述
    移位运算
    在这里插入图片描述
    在这里插入图片描述

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

    位逻辑运算
    在这里插入图片描述
    在这里插入图片描述
    判断此处~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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    强制类型转换

    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;
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
  • 相关阅读:
    类器官、单细胞分析技术、MAPK信号通路
    工厂与观察者模式
    【Spring Boot 源码学习】OnWebApplicationCondition 详解
    【操作系统内存管理(基本概念)】
    【K8s入门必看】第二篇 —— 快速部署集群指南
    k8s TLS bootstrap解析-k8s TLS bootstrap流程分析
    C语言的查找
    【c++提高1】最近共先祖LCA优化求法
    【GitLab私有仓库】在Linux上用Gitlab搭建自己的私有库并配置cpolar内网穿透
    mkv无损转换成mp4,方法步骤
  • 原文地址:https://blog.csdn.net/weixin_46483785/article/details/133707027