十一、运算符
运算符在C语言中我们主要有三种:算术运算符、关系运算符、逻辑运算符,下面一一学习:
1.算术运算符:+、-、*、/、%、++、--,下面让我们直接进入练习;
从上图中可以看出,c,d变量中所得到的值为和;注意,printf在显示浮点型常数的使用%f;
2.关系运算符:>、>=、<、<=、==、!=;
int a=5, b=6;
a>(b-1) 结果值为0
(a +1)== b 结果值为1
a>=(b-2) 结果值为1
a<100 结果值为1
(a+3)<=b 结果值为0
a != (b-1) 结果值为0
3.逻辑运算符:&&、||、!;
逻辑与&&运算符有短路特性,逢0截止;
逻辑或||运算符逢1截止
int x=5, y=18;
(x>=5) && (y<20) 结果值为1
((x+1)>=0) && (y<17) 结果值为0
((x-8)>=0) && (y==18) 结果值为0
((x-5)>0) && (y!=18) 结果值为0
((x>=5)) || (y<20) 结果值为1
((x+1)>=0) || (y<17) 结果值为1
((x-8)>=0) || (y==18) 结果值为1
((x-5)>0) || (y!=8) 结果值为1
(x>=5) && (y<20) 结果值为1
((x+1)>=0) && (y<17) 结果值为0
((x-8)>=0) && (y==18) 结果值为0
((x-5)>0) && (y!=18) 结果值为0
((x>=5)) || (y<20) 结果值为1
((x+1)>=0) || (y<17) 结果值为1
((x-8)>=0) || (y==18) 结果值为1
((x-5)>0) || (y!=8) 结果值为1
4.位运算符:~、&、|、^、>>、<<
下面看下取反~例子:
char x = 0x17;
y = ~x;
结果如下:
下面让我们观察下按位与
unsigned char x=0126, y=0xac, z;
z = x & y;
z = x & y;
举例说明按位或:unsigned char x=076, y=0x89, z;
z = x | y;
z = x | y;
举例说明按位异或:相同为假,相异为真;
unsigned char x=75, y=0173, z;
z = x ^ y ;
z = x ^ y ;
位运算的功能可提高运算的效率,可处理硬件寄存器的速度;
让我们观察下0x01进行左移运算:
unsigned char x = 0x01;
X << 1 00000001 << 1 -> 00000010 结果从1变为2;
X << 1 00000010 << 1 -> 00000100 结果从2变为4;
X << 1 00000100 << 1 -> 00001000 结果从4变为8;
从以上例子可以看出,左移1位相当于将原来的数*2,右移则是除以2;