= 赋值运算符 如 int a = 12;将12赋值给a
== 相等 如 int a = 10;int b = 20; bool bFlag = a == b;若相等,则表达式 a == b返回Ture 否则返回False
!= 不等于 如int a = 10;int b = 20; bool bFlag = a != b;如上
> 大于 如int a = 10;int b = 20; bool bFlag = a > b;
< 小于 如int a = 10;int b = 20; bool bFlag = a < b;
>= 大于等于 如int a = 10;int b = 20; bool bFlag = a >= b;
<= 小于等于 如int a = 10;int b = 20; bool bFlag = a <= b;
+加 如 int a = 10; int b =10; int c = a+b;
-减 如 int a = 10; int b =10; int c = a-b;
*乘 如 int a = 10; int b =10; int c = a*b;
/除 如 int a = 10; int b =10; int c = a/b; (不能除0,会导致异常)
%取余 如 int a = 10; int b =4; int c = a%b; c = 4 取余数
++自增 a++ 先赋值再加一 ++a 先加一再赋值
如 int a = 1;
int b =1;
printf("a++:%d\n++b:%d",a++,++b); --> a=1,b=2
printf("\na:%d\nb:%d",a,b);-->a=2 b=2
--自减
如 int a = 1;
int b =1;
printf("a--:%d\n--b:%d",a--,--b);-->a=1,b=0
printf("\na:%d\nb:%d",a,b);-->a=0,b=0
+=加等于 如 int a = 10; a += 5(a=a+5)
-=减等于 如 int a = 10; a -= 5(a=a-5)
*=乘等于 如 int a = 10; a *= 5(a=a*5)
/=除等于 如 int a = 10; a /= 5(a=a/5)
%=取余等于 如 int a = 10; a %= 5(a=a%5)
sizeof 尺寸运算符
int a;
short b;
printf("a=%d\r\n b=%d",sizeof(a),sizeof(b));
结果 a=4 b=2
& 位与运算符 (计算器 AND)
如 10101010 &
11110101
结果 10100000
int nRes = 0b10101010 & 0b11110101(0b表此数据为二进制数据)
相同位置数字一样则结果位置也为同样数字 ,否则为0
| 位或运算符
如 10101010 |
11110100
11111110 才算0
int nRes = 0b10101010 | 0b11110100
相同位置有一个1便是1,只有俩0
~ 位非运算符
如 ~10101010
结果 01010101
^ 异与运算符(同样的位置都是0或1时,结果相同位置为0,)
10101010 ^
11110100
01011110
int nRes = ~0b10101010
异或加密:两个值不相同,则异或结果为1;两个值相同,异或结果为0。所以根据异或的运算规则,在二进制中,相同为0,不同为1。
char szA = 'A';
char szB = 'B';
char szT = szA ^ szB;
printf("%X %c %c",szT,(szA^szT),(szB^szT))
结果 3 B A
<< 左移运算符
00000001 << 5
00100000
>> 右移运算符
10010000 >>3 当符号位为1时,右移的每一位都补1
11110010
00010000 >>3 当符号位为0时,右移的每一位都补0
00000010
&& 逻辑与
bool bFlag = (10 >5) && (10>6) Ture
|| 逻辑或
bool bFlag = (10 >5) ||(10>12) Ture 一个为ture则结果就为ture
!逻辑非
bool bFlag = ture;
bFlag = ! ture;
结果为 false
?:
int a = x < y ? c : d
如果x 如果x 运用ture或者false时,需要添加头文件stdbool.h