C语言中的运算符(二)


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

  Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群一名“创始团队·嘉宾” ,现在我来为大家介绍一下有关嵌入式方面的内容。在进入介绍之前,可能有一些小伙伴不了解易编程·终身成长社群;想要进一步了解社群的小伙伴可以点击下方链接自行跳转至关于社群的介绍:

易编程·终身成长社群介绍 :
https://blog.csdn.net/weixin_74300052?spm=1011.2266.3001.5343
在这里插入图片描述


🍊位运算符

运算符 格式 功能 结果
& 表达式1&表达式2 按位或 都1则1,1和0则0
| 表达式1 |表达式2 按位或 有1则1,都0则0
^ 表达式1 ^ 表达式2 按位异或 相同则为0,不同则为1
~ ~表达式 按位取反 1变0,0变1
<< 表达式<<位数 左移 左移是对应二进制位向左移动,高位丢弃,低位补0
左移的时候,等价于将这个数据乘以2的n(移动的位数)次方
>> 表达式>>位数 右移 右移,向右移动,低位丢弃,高位:正数补0,负数补1

在这里插入图片描述
在这里插入图片描述


异或有一个用法(用 a 来举例):
a ^ a = 0;
0 ^ a = a;
汉字描述:
本身跟本身进行异或等于0;
0和任何数异或等于任何数。

a=10   //0000 1010
a ^ a:      | a ^ 0
 0000 1010  | 0000 1010
^0000 1010  |^0000 0000
 0000 0000  | 0000 1010

用法实例(不使用第三方变量,交换a 和 b的值)

#include <stdio.h>
int main()
{
	int a = 10;     //0000 1010
	int b = 15;     //0000 1111

	a = a ^ b;
	b = a ^ b;      //b = (a ^ b) ^ b ==> b = a ^ 0 ==> b = a;
	a = a ^ b;      //a = (a ^ b) ^ a ⇒ a = 0 ^ b ==> a = b;
	printf("a = %d b = %d\n",a,b);
	return 0;
}

🍊赋值复合运算符

运算符 功能说明 示例
+= 加法赋值复合运算符 a+=b等价于a=a+b
-= 减法赋值复合运算符 a-=b 等价于a=a-b
*= 乘法赋值复合运算符 a*=b 等价于a=a*b
/= 除法赋值复合运算符 a/=b 等价于a=a/b
%= 求余赋值复合运算符 a%=b 等价于a=a% b
&= 位与赋值复合运算符 a&=b等价于a=a&b
|= 位或赋值复合运算符 a|b 等价于 a = a | b
^= 位异或赋值复合运算符 a^=b 等价于a=a^b
>>= 位右移赋值复合运算符 a>>=b 等价于a=a>>b
<<= 位左移赋值复合运算符 a<<=b 等价于 a=a<< b

🍊逗号运算符和赋值运算符

1、逗号运算符
格式:

ret = 表达式1,表达式2...表达式n
功能:按顺序执行表达式,并将表达式n的结果作为整个表达式的值赋值给ret.
所有的运算符中,逗号表达式的优先级最低

示例用法:

z = (x = 5, y = 6, x + y);
z的值为11,x的值为5,y的值为6

2、三目运算符

ret = 表达式1 ? 表达式2 : 表达式3;
功能:
判断表达式1是否为真,若是为真则执行表达式2,并把表达式2最终的结果复制给ret,
如果表达式1为假,就执行表达式3,并把表达式3最终的结果复制给ret,

🍊运算符优先级

优先级 运算符及含义 结合规律
1 [] () -> 后缀++ 后缀– 从左向右
2 前缀++ 前缀-- sizeof & *(指针运算符)  +(正号) -(负号) ~ ! 从左向右
3 强制类型转换 从左向右
4 * / % (算数乘除) 从左向右
5 + -(算数加减) 从左向右
6 << >>(位移) 从左向右
7 < <= > >= 从左向右
8 == != 从左向右
9 & 从左向右
10 ^ 从左向右
11 | 从左向右
12 && 从左向右
13 || 从左向右
14 ? :(三目运算符) 从左向右
15 = ^= /= += -= <<= >>= &= != 从左向右
16 逗号运算符 从左向右

大家对这小节内容有什么疑问可以在评论区评论,博主和广大网友看到后会第一时间回复的

相关推荐

  1. C++ 运算符重载(

    2024-07-22 04:46:02       48 阅读
  2. C语言运算符及算术运算符详解

    2024-07-22 04:46:02       47 阅读
  3. C语言逻辑运算符

    2024-07-22 04:46:02       57 阅读
  4. C++::运算符

    2024-07-22 04:46:02       23 阅读
  5. 【保姆级讲解C语言运算符优先级】

    2024-07-22 04:46:02       33 阅读
  6. 第二章:c语言表达式和运算符

    2024-07-22 04:46:02       27 阅读
  7. C++ 运算符优先级

    2024-07-22 04:46:02       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 04:46:02       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 04:46:02       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 04:46:02       45 阅读
  4. Python语言-面向对象

    2024-07-22 04:46:02       55 阅读

热门阅读

  1. linux搭建redis cluster集群

    2024-07-22 04:46:02       14 阅读
  2. centos/rocky容器中安装xfce、xrdp记录

    2024-07-22 04:46:02       16 阅读
  3. 【Python】 深入理解 Python 的 repr 方法

    2024-07-22 04:46:02       17 阅读
  4. 【2024德国签证】留学面签问题汇总

    2024-07-22 04:46:02       25 阅读
  5. 为了zoom

    2024-07-22 04:46:02       24 阅读
  6. vue中hash和history的区别 ?

    2024-07-22 04:46:02       16 阅读
  7. 使用 KerasNLP 从头开始生成 GPT 文本

    2024-07-22 04:46:02       15 阅读
  8. 2024-7-20 IT领域最新资讯概览

    2024-07-22 04:46:02       14 阅读
  9. 墨烯的C语言技术栈-C语言基础-017

    2024-07-22 04:46:02       17 阅读
  10. 对Spring、SpringMVC、MyBatis框架的介绍与解释

    2024-07-22 04:46:02       9 阅读
  11. Linux下编译boost1.85

    2024-07-22 04:46:02       10 阅读