目录
1.操作符的分类
2.算数操作符
3.移位操作符
移位操作符移动的是二进制位。
3.1二进制的细讲
一个整数的二进制表示形式有3中:原码,反码,补码
原码:按照数值的正负,直接写出的二进制序列就是原码
反码:原码的符号位不变,其它位按位取反
补码:反码的二进制位+1
在内存中,存储数据的二进制位都是以补码的形式,在计算的时候也是使用补码的方式就行计算。
原码,反码,补码的计算方式,例如:
3.2移位操作符的运用
左移操作符:
总结:左移操作符有着*2的效果,左移一位就是*2
右移操作符:
右移操作符分两种右移方式:
- 算术右移
- 逻辑右移
算术右移:左边用原该值的符号位填充,右边丢弃。
逻辑右移:左边用0填充,右边丢弃。
在大多编译器上,采用的是算术右移。
总结:右移操作符有着 / 2 的效果
4.位操作符
- &:按位与
- |:按位或
- ^:按位异或
注:他们的操作数必须是整数
& 的运算规则:对应位有0则0,同时为1才为1
任何一个数&1就能得到最后一位的数。
| 的运算规则: 对应位有1则1,同时为0才为0
^ 的运算规则:对应位的值相同则为0,不同的值为1
5.赋值操作符
int main()
{
int i = 10;
i = 5; //重新赋值
printf("%d ",i);
return 0;
}
+= -= *= /= %=这些操作符可以自己去实验一下。
6.单目操作符
!:这是逻辑反,作用是将原本为真的条件,改为假的。
例如:
sizeof:求数据类型或变量在内存中占据空间的大小
例如:
int main()
{
int i = 3;
printf("%d ", sizeof(i));
return 0;
}
++、-- 这两类分为前置和后置,所产生的作用也不一样
例如:
总结:前置++,前置--,代表着先++或者--,然后在使用
后置++,后面--,代表着先使用,然后在进行++或者--
7.关系操作符
这个过于简单,就不细讲了,有兴趣可以自己实验。
8.逻辑操作符
&& 逻辑与
|| 逻辑或
&&的逻辑规则:两边同时满足才为真
||的逻辑规则:两边只要有一边为真那就是真
例如:
在c语言中,0为假,非0才为真。
9.条件操作符
int main()
{
int x = 10;
int y = 20;
printf("%d",x > y ? x : y);
return 0;
}
如果x>y成立,则执行x语句,反正执行y语句。
10.逗号表达式
11.下标引用,函数调用和结构成员
对于[ ]来说,arr是它的操作数,5也是它的操作数。
函数调用操作符
总结:结构体变量用. 结构体指针用->