你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~
🍊自我介绍
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 | 逗号运算符 | 从左向右 |
大家对这小节内容有什么疑问可以在评论区评论,博主和广大网友看到后会第一时间回复的