1、算术操作运算
**+、- :**注意左右运算类型一致
** *、/ :**避免使用乘除运算符,CPU不一定支持,可能需要多个周期进行运算
**%:**取余
` n % m = res [0 - m-1] //范围在0至m-1`
常用的三个场景:
1、取一个范围数:
eg: 给一个任意的数字,得到一个1-100以内的数字?
(m%100)+1=====>res;
2、得到M进制 的一个个位数
3、循环数据结构的下标,数值n的增加,对于被除数m,会出现循环的余数
2、逻辑运算
真、假: 返回结果1或0
a、|| 或(前后关系不能交换) && 与
b、>大于、 >=大于等于、 < 小于、<=小于等于
c、!逻辑取反
d、条件? 表达式1:表达式2,条件为真执行1,反之执行2
3、位运算
a、<<:左移 乘以2eg: m<<1; //m*2 int a = b*32; ===⇒ b <<5
、左移补0
注:11111111 ====== -1
b、>>: 右移 除以2 符号变量有关,负数右移因为最高位符号位,不可以右移到0
c、&: 与屏蔽
` int a = 0x1234 ;
a=& 0xff00 //取出高8bit, 屏蔽低8bit`
A&1 —>A :取出
&:清零器 clr
|: 或
A|0 ==A
保留
A|1 ==1
设置为高电平的方法,设置set
设置一个资源的bit5为高电平,其他位不变
int a;
a = a| (0x1<<5);
清除第五位
int a;
a = a& -(0x1<<5);
d、^:异或 交换数值
int fun()
{
int a = 20;
int b = 30;
a = a^b;
b = a^b;
a = a^b;
} // out a = 30 ; b =20
e ~:取反 数值取反
4、赋值运算
= 、|=、 &=: a=a+b==a+=b// a=a|(0x1<<5)==a|=(0x1<<5)
5、内存访问符号
():限制符,优先运算;函数访问功能 int fun(); fun();
[]: 数组;内存访问的ID符号
{}:函数体的限制符
->: 地址访问
.:变量访问
&:&p取地址;&10与运算
*: *p指针; *10乘法