一、逗号运算符
- 格式:
- 整个逗号表达式的值
- 返回的结果是最后一个表达式的值
- 使用起来,最好加上括号来返回最后一个表达式的值。否则逗号表达式的意义将失效(见下面演示案例)
(表达式1, 表达式2, 表达式3....);
演示案例
二、%运算符的作用
- %运算符有一个作用,可以用来取一个范围内的数字,类似于随机数
原理:
- 案例:0%3=0、1%3=1、2%3=2、3%3=0、4%3=1......
- 由上可以得出:n%m。无论一个多大的数对m取余,得到的结果范围在[0---m-1]之间( n%m ==>范围[0---m-1]。)
C语言随机数函数
- int a=rand()%10; //产生0~9之间的随机数,就是上面的原理
出题:
- 给一个任意的数字m,得到一个1~100内的数字(包括1和100)
- (m%100)+1
三、*运算符的注意事项
- 在C语言中,要尽量少用*,特别是在硬件开发中
- 因为对于*来说,CPU可能要运行多个周期,甚至还要利用软件的模拟方法来实现乘法。而+、-等运算符,CPU只需要一个周期
四、位运算符
按位与:&
- 功能:对每一个比特位进行“与”运算
- 演示案例:
#include <stdio.h> int main() { int a = 8; int b = 5; printf("%d\n", a & b); return 0; }
- 图示解析如下:
按位或:|
- 功能:对每一个比特位进行“或”运算
- 演示案例:
#include <stdio.h> int main() { int a = 8; int b = 5; printf("%d\n", a | b); return 0; }
- 图示解析如下:
按位异或:^
- 功能:对每一个比特位进行比较,相同为0,不同为1
- 演示案例:
#include <stdio.h> int main() { int a = 8; int b = 5; printf("%d\n", a ^ b); return 0; }
- 图示解析如下:
左移::<<
- 功能:对一个数字进行左移,相当于对乘以“2的n次方”
- 演示案例:
#include <stdio.h> int main() { int a = 8; // 相当于8*(2的2次方) = 8*4 =32 printf("%d\n", a << 2); return 0; }
右移::>>
- 功能:对一个数字进行左移,相当于对除以“2的n次方”
- 演示案例:
#include <stdio.h> int main() { int a = 32; // 相当于32/(2的2次方) = 32/4 =8 printf("%d\n", a >> 2); return 0; }