C语言中的操作符

前言

下面将介绍算术操作符,移位操作符,位操作符,单目操作符,关系操作符,赋值操作符,逻辑操作符,条件操作符

一、算数操作符

+  -  *  /  %

最简单的加,减,乘,除和取余

  1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
  2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。
  3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。如8%3就相当于8除以3,商2余2
    那么8%3 = 2

二、移位操作符

<<    >>

<< 左移操作符 >>右移操作符
其中: 对于移位运算符,不要移动负数位,这个是标准未定义的。而如果移位的数值过大(大于32),可以按照移位的数对32取余来移位。如左移35位也就是相当于左移三位 35%32=3
左移操作符移位规则:左边(高位)抛弃、右边(低位)补0
例如 :10<<3 就是把10左移三位 ,结果是80
在这里插入图片描述
因此如果数据较小,被丢弃的高位不包含 1,那么左移 n 位相当于乘以 2 的 n 次方。
而-10<<3 结果是-80
在这里插入图片描述
右移操作符移位规则:低位抛弃,高位补 0 或 1。如果数据的最高位是 0,那么就补 0;如果最高位是 1,那么就补 1。(因此右移也可以称作符号移位,补的数是符号位)如果被丢弃的低位不包含 1,那么右移 n 位相当于除以 2 的 n 次方。

三、位操作符

&   |   ^

& 表示按位与,| 表示按位或,^ 表示按位异或
注:他们的操作数必须是整数

  1. 一个比特位只有 0 和 1 两个取值,只有参与&运算的两个位都为 1 时,结果才为 1,否则为 0。例如1&1为 1,0&0为 0,1&0也为 0。
  2. 参与|运算的两个二进制位有一个为 1 时,结果就为 1,两个都为 0 时结果才为 0。例如1|1为1,0|0为0,1|0为1。
  3. 参与^ 运算两个二进制位不同时,结果为 1,相同时结果为 0。例如0^ 1为1,0^ 0为0,1^1为0。

四、单目操作符

!           逻辑反操作
-           负值
+           正值
&           取地址
sizeof      操作数的类型长度(以字节为单位)可以求变量所占空间的大小
~           对一个数的二进制按位取反(1变0,0变1)
--          前置、后置--
++          前置、后置++
*           间接访问操作符(解引用操作符)

五、关系操作符

>          大于
>=         大于等于
<          小于
<=         小于等于
!=         用于测试“不相等”
==         用于测试“相等”

六、赋值操作符

即 = (与数学中的=不同,当表示相等时,需要用到关系操作符==)
如:int a = 5; 表示把5的值赋给变量a

七、逻辑操作符

&&   ||
  1. && 表示逻辑与(相当于数学中的且)
    参与运算的两个表达式都为真时,结果才为真,否则为假。
  2. || 表示逻辑或(相当于数学中的或)
    参与运算的两个表达式只要有一个为真,结果就为真;两个表达式都为假时结果才为假。
  3. && 和 || 都为双目运算符

八、条件操作符

 exp1 ? exp2 :exp3

C语言中唯一一个三目运算符,求值规则为:如果表达式1的值为真,则以表达式2 的值作为整个条件表达式的值,否则以表达式3的值作为整个条件表达式的值。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值