今天又是沙雕女生的一天,最近水卡长着翅膀飞了,牙膏跟着私奔了,就连水壶也看不惯我了,不知怎么的就碎了。
水逆体质什么时候才能被历史重写,算了,还是来学习吧。
操作符
1.算数操作符
算数操作符就是用来运算的操作符。
- 这里注意的是/和%运算被除数和被模数不可为0。
- %操作符的两个操作数都必须为整数。
2.移位操作符
- 左移操作符相当于乘二。(<<)
- 右移操作符分为逻辑移位和算数移位。(>>)
- 逻辑移位(无符号数)用0补位。
- 算数移位(有符号数)用符号位补位。
不管是左移还是右移都不改变数值的大小
3.位操作符
& | ^
这里操作数都必须是整数
计算整数的二进制数中1的个数
#include<stdio.h>
int main()
{
int n=0;
int count=0;
scanf("%d",&n);
while(n)
{
if(n&1)
{
count++;
}
n>>=1;
}
printf("%d",count);
return 0;
}
分割线
#include<stdio.h>
int main()
{
int n=0;
int count=0;
scanf("%d",&n);
while(n)
{
count++;
n=n&(n-1);
}
printf("%d",count);
return 0;
}
第一个代码段是给这个数按位与1,之前的数全都变成0,判断最后一位是否是一,然后右移移位继续判断
第二个代码效率更高,每出现一个1就循环一次。
4.赋值操作符
这里没有什么需要注意的,就是知道一个复合操作符的方便运用。
5.单目操作符
!逻辑反操作
+正值
& 取地址
sizeof 以字节为单位的长度
~ 对一个数的二进制按位取反
++ 前置和后置
前置:先使用,后自增
后置:先自增,后使用(–也一样)
6.关系操作符
注意:==和=要区分清楚。
7.逻辑操作符
&&和||
这里要注意和按位与和按位或是不一样的。
- ()&&() 第一个条件不满足时,后面的不会再执行
- ()||() 第一个条件成立时,后面的代码段也不会执行。
8.逗号表达式
整个表达式的结果是最后一个表达式的结果。
9.整型提升
为啥要这样子呢?
数据存在内存中,而进行运算是在CPU中的寄存器中,标准寄存器是4个字节而char类型在内存中占一个字节,在进行运算时,就要转化为CPU中整型操作数的长度。
如何进行整型提升呢? - 有符号数整型提升时,高位补充符号位
- 无符号数提升时,高位补充0.
- 整型提升时先看变量的自身类型
博客先分享生活小烦恼后进入学习内容,介绍了操作符相关知识,包括算数、移位、位、赋值、单目、关系、逻辑、逗号表达式等操作符的特点和注意事项,还讲解了整型提升的原因和方法。
1271

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



