运算符

运算符

逻辑运算符

  • *逻辑与 &&*
    aba && b
    都为真,逻辑与才是真
    
    只要有一个是假, 逻辑与就是假
    
    相当于“而且”
    
    应用场景:
    
    当需要两个条件都满足时,就使用逻辑与
    

    *特别注意:*

    条件1  &&  条件2
    
    当条件1为真时,才去判断条件2
    
    当条件1为假时,就不再判断条件2
    

    多个条件:

    条件1 &&  条件2  && 条件3 
    
  • *逻辑或 ||*
    aba || b
    只要有一个是真, 结果就是真
    
    都为假时,结果才是假
    
    相当于“或者”
    
    多个条件:
    
    条件1  ||  条件2  || 条件3
    
    应用场景:
    
    只需要满足任意一个条件时,就使用逻辑或
    

    *特别注意:*

    条件1  ||  条件2
    
    当条件1为真时,就不再判断条件2
    
    当条件1为假时,才判断条件2
    
  • *逻辑非 !*

    是”单目运算符”, 即:只有一个操作数

    !条件

    a!a
    相当于“不”
    
    应用场景:
    
    当需要不满足某条件时,就使用逻辑非
    

    *特别注意:*

    逻辑非,只对一个条件进行运算!
    
    是一种“单目运算符”
    

位运算

*什么是位?*

内存的基本单元是字节, 一个字节有8位.

*位与 &*

0 & 0 	 0
0 & 1	 0
1 & 0 	 0 
1 & 1 	 1
对应位, 都是1,  结果才是1

// 00001000 
// 00000011
​	&
// 00000000

cout <<  " 8 & 3 = " << (8 & 3) << endl;  

*位或 |*

0  |  0  	0
0  |  1		1
1  |  0  	1
1  |  1 	1

对应位, 都是0, 结果才是0
只要有一位是1, 结果就是1
0 | x  x

// 00001000 
// 00000011
​	||
// 00001011

cout <<  " 8 | 3 = " << (8 | 3) << endl;  

*位非 ~*

~1 	 0
~0   1

取反
// 00001000 
​	~
// 11110111

unsigned char x = ~8;
cout << (int)x << endl;  //247

异或 ^

0 ^ 0	0
1 ^ 1  	0
0 ^ 1   1
1 ^ 0 	1

对应位不同, 结果才是1
// 00001000 
// 00000011
​   ^
// 00001011
	
cout << (8^3) << endl;  //11

算数运算符

*算术运算*
+x = 5 + 3;
-x = 5 - 3;
*x = 5 * 3;
/x = 10 / 3;1. 两个整数相除,结果取整数部分2. 除数不能为0(也不要为0.0)
%取余x = 10 % 3;//结果为1只有整数和char类型可以做%运算float和double类型不能做%运算
*赋值运算*
x = 10;  //把x的值设置为10, 把10写到变量x中。

x = 10 + a;

左边必须是变量  
“优先级”很低,只比 ","(逗号元素符)高。
*复合赋值运算*
x += 10;  	//  x = x + 10
x -= 10;  	//  x = x - 10

类的还有: *= ,   /=,  %= 等。
*自增自减运算*
i++  =>  i = i+1
++i  =>  i = i+1
i--  =>  i = i-1
--i  =>  i = i-1

i = 100;
x = i++;  // x = 100

i = 100;
x = ++i; // x= 101
后缀自增x = i++;x = i;i=i+1;先取值再自增(自减)
后缀自减x=i–;x =i;i=i-1;
前缀自增x = ++i;i=i+1;x=i;先自增(自减)再取值
前缀自减x = --i;i=i-1;x = i;

注意:

\1. 只能对变量做++和--运算,不能对变量和表达式做++和--运算

  5++;  //ERROR

 (3+x)++;  //ERRO

\2. 建议尽量使用前缀自增(自减),以避免错误。
*逗号运算符*
优先级最低.
*三目运算符*
条件 ?  表达式1 :表达式2

如果条件为真,就取表达式1作为整个表达式的值
如果条件为假,就取表达式2作为整个表达式的值

优先级

一共有15个级别!

不需强制记忆,只需要掌握以下常用的优先级:

最高优先级:( )和[ ]

最低优先级:逗号表达式

倒数第二低优先级:赋值和复合赋值(=, +=,  -=  ...)
x = a+ b*c;

! > 算术运算符 > 关系运算符 > && > || > 赋值运算符

(3 + 4 < 5  &&  6 > 7)  ||  (8 > 7);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值