目录
1.算术操作符
+ - * / %
算术操作符的话有:加号(+),减号(-),乘号(*),除号(/),取模(%)。大家应该都非常的熟悉,也比较简单,给大家稍微说一下,其中的一些需要注意的地方我给大家讲一下。加号(+):进行加法计算,可以整数相加,字符相加,浮点数相加,减号(-),乘号(*)也一样。
除号(/),我们来看下面的小例子:

3/5打印的结果为0。这里就要说一下结果为什么是0,不应该是0.6嘛。
3/5,除号(/)两边的两个操作数是整数,所以这里进行的是整数除法,3/5这里是商0余3,不够除,商0,余了个3。如果把3换成6,6/5打印的结果就是1,这里就是商1余1。这就叫做整数除法
如果我们不想要打印整数,想要的是浮点数呢,我们来看下面的小例子:

想要打印出浮点数,除号两端的操作数最少有一个是浮点数,这样执行的就是浮点数的除法。我们就能得到0.6的结果。
因为除号两端有一个是浮点数,所以我们改成float类型。打印的是浮点数,所以用%f。
取模(%):
取模(%)操作符的两个操作数必须为整数。返回的是整除之后的余数。

上面例子打印的结果是 1 。
7 % 3求的就是7 / 3的余数,7 / 3的结果是商2余1,所以打印的结果就是1。
2.移位操作符
(<<) 左移操作符 (>>) 右移操作符
(<<) 左移操作符,我们来看下面例子:

上面把a向左移动移动一位就是把a的二进制序列向左移动一位。
左移操作的移动规则就是:左边丢弃,右边补0。
所以向左移动一位后求得b的值为4。
(>>) 右移操作符
右移操作符分两种:
算术右移,右边丢弃,左边补原符号位。
逻辑右移,右边丢弃,左边补0。
我们来看下面例子:

a的二进制序列:
00000000 00000000 00000000 00000010
向右移动一位的:
00000000 00000000 00000000 00000001
因为a是正数,所以不管是逻辑运算还是算术运算,左边补的都是0。所以得到的b值就是1。
我们可以测试一下当前编译器是采用的算术右移还是逻辑右移,我们用 -1 来测试一下:
负数:-1
我们存放到内存中
说到这里必须给大家交代一个知识点,
整数的二进制表示形式有三种,分别是原码,
本文详细介绍了C语言中的各种运算符,包括算术、移位、位、赋值、单目、关系、逻辑、条件和逗号操作符。重点讲解了整数除法、位移操作以及位操作符的使用,并通过实例解释了它们的工作原理和注意事项。此外,还提到了逻辑短路现象和条件操作符的用法。
最低0.47元/天 解锁文章
619

被折叠的 条评论
为什么被折叠?



