先赞再看,养成习惯!!!你的支持是对我最大帮助!
操作符
简单介绍为主,后面会详细讲
算术操作符
算术操作符 | 对应符号与使用方式 |
---|---|
+ | 加号( 1+2 ) |
- | 减号 ( 2-1 ) |
* | 乘号( 2*3 这里输出结果为6 ) |
/ | 除号( 5/2 )输出结果为商 |
% | 取模( 5%2 )输出结果为余数 |
#include<stdio.h>
int main()
{
int a = 5/2; // 输出2,除得到的结果商
printf("%d\n",a);
int b = 5%2; // 输出1,取模,结果为余数
printf("%d\n",b);
return 0;
}
移位操作符
移位操作符( 2进制 ) | 用法 |
---|---|
<< | 左移 |
>> | 右移 |
#include<stdio.h>
int main()
{
int a = 1;
// 整型1占4个字节 - 32个比特位
//00000000000000000000000000000001
int b = a << 1;
int c = a << 2;
printf("%d\n",b);
printf("%d\n",c);
printf("%d\n",a);
return 0;
}
整型1占4个字节 - 32个比特位
所以这幅图是整型1的比特位,命名为a
a << 1
向右移一位
多余去掉不要,末尾默认添零
所以a = 00000000000000000000000000000010
为输出字符为 2
** >> 左移字符,基本相同**
位操作符
(2进制)位操作 | 作用 |
---|---|
& | 按位与 |
| | 按位或 |
^ | 按位异或 |
1.按位与
#include<stdio.h>
int main()
{
int a = 3;
int b = 5;
int c = a&b;
printf("%d\n",c);
return 0;
}
“与”其实就是并起来的意思
3 - - 二进制 - -> 011
5 - - 二进制 - -> 101
在C语言中 0 为假,其他数为真
011
101
按位与得001
过程:
1.第三行, 0 为假 , 1 为真 ---- 一假一真,用假 - - - - > 得到 0
2.第二行,相同 - - - - > 得到0
3.第一行, 1 为真 ,1 为真 ---- 两个真 - - - - > 得到 1
4.结果为 001
5.在ASCII中二进制 001 对应的字符为 1
注:按位与只有两个真才为真,一真一假为假,两假为假
2.按位或
#include<stdio.h>
int main()
{
int a = 3;
int b = 5;
int c = a|b;
printf("%d\n",c);
return 0;
}
按位或只要两个中有一个为真,就可以为真,两个真为真,两个假为假,一假一真为真。
所以
011
101
得到111
在ASCII中二进制 111 对应的字符为 7
3.按位异或
异或的计算规律:
对应的二进制位相同,则为0
对应的二进制位相异,则为1
所以
011
101
得到110
#include<stdio.h>
int main()
{
int a = 3;
int b = 5;
int c = a^b;
printf("%d\n",c);
return 0;
}
位操作符有它自己的作用,后面会讲到
赋值操作符
赋值操作符 | 作用 |
---|---|
= | 赋值 |
+= | a += 1 完全等于 a = a+1 |
-= | a -= 1 完全等于 a = a-1 |
&= | a &= 1 完全等于 a = a&1 |
*= | a = 1 完全等于 a = a1 |
/= | a /= 1 完全等于 a = a/1 |
^= | a ^= 1 完全等于 a = a^1 |
|= | a |= 1 完全等于 a = a|1 |
<<= | a <<= 1 完全等于 a = a << 1 |
>>= | a >>= 1 完全等于 a = a >> 1 |
** = 和 == 区别**
操作符 | 作用 |
---|---|
= | 赋值 |
== | 判断相等 |
复合赋值符
+= -= *= /= 这些都称为复合赋值符