0.前言
本章主要整理C语言运算符。
以及介绍部分运算符的典型使用方法。
1.算数运算符
- 注:CPU不能执行乘除法等,需要多个周期或软件模拟方法。 乘数法尽量与2^n有关,可以减少运算量,提高运算效率。
%用法:取一个范围的数;得到M进制的一个个位数;得到一个循环的下标。
2.逻辑运算符
- 返回结果真(1)假(0)。
A||B不等价于B||A,因为执行顺序不一致,可能第一个为0便不执行后续部分。 - >、≥、<、≤
- ?: 正则表达式,相当于if else
3.位运算符
- &: 按位与(两者同为1则为1,否则为0)//用法:屏蔽、取出、清零
- |:按位或 (两则同为0则为0,否则为1)//用法:保留、置位
- ^: 按位异或(两则相同则为0,相异则为1)
- ~: 取反 (1取0,0取1)
- <<:左移 (相当于乘2)
- >>:右移 (相当于除2)
//右移与符号变量有关
//以下两种写法不同
int a; a>>n;
unsigned int a; a>>n;
//==============
int a=xxx;//a若为负数,则为死循环
while(a)
{
a=a>>1;
}
//设置第5位为高,其他位不变
a=a|(0x1<<5); //a=a|(0x1<<n)
//清除第5位为低,其他位不变
a=a&(~(0x1<<5)); //a=a&(~(0x1<<n));
//异或交换a、b内容,无需引入第三个变量
a=a^b;
b=a^b;
a=a^b;
4.赋值运算符
- = :幅值
- += :加赋值运算符。如a+=3+1, 等价于 a=a+(3+1)。
- -= :减赋值运算符。如a-=3+1, 等价于 a=a-(3+1)。
- *= :乘赋值运算符。如a*=3+1, 等价于 a=a*(3+1)。
- /= :除赋值运算符。如a/=3+1, 等价于 a=a/(3+1)。
- %= :取余赋值运算符。如a%=3+1, 等价于 a=a%(3+1)
5.内存访问符
- ():限制符
1、最常用的方式及用途就是改变确定优先级,增加code的可读性。
2、函数访问:mian o - [ ]:数组
可以看成数据访问的ID符号a[1]=100,元素的代号 - {}:函数体的限制符
struct XXXX{XXXXX} - ->与.:变量访问
- &、*:取地址、取数据
注意:在不同的环境中不同符号具有特定的意义,符号本身具有多种特性。