C语言 - 操作符(简单介绍)第一期

先赞再看,养成习惯!!!你的支持是对我最大帮助!


操作符

简单介绍为主,后面会详细讲

操作符
算术操作符
移位操作符
位操作符
赋值操作符

算术操作符

算术操作符 对应符号与使用方式
+ 加号( 1+2 )
- 减号 ( 2-1 )
* 乘号( 2*3 这里输出结果为6 )
/ 除号( 5/2 )输出结果为商
% 取模( 5%2 )输出结果为余数
#include

int main()
{
     
    int a = 5/2; // 输出2,除得到的结果商
    printf("%d\n",a);
    int b = 5%2; // 输出1,取模,结果为余数
    printf("%d\n",b);
    return 0;
}

移位操作符

移位操作符( 2进制 ) 用法
<< 左移
>> 右移
#include

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;
}

变量a
整型1占4个字节 - 32个比特位
所以这幅图是整型1的比特位,命名为a
在这里插入图片描述

a << 1

向右移一位
在这里插入图片描述
多余去掉不要,末尾默认添零
所以a = 00000000000000000000000000000010
为输出字符为 2
** >> 左移字符,基本相同**

位操作符

(2进制)位操作 作用
& 按位与
| 按位或
^ 按位异或

1.按位与

#include

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

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

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

** = 和 == 区别**

操作符 作用
= 赋值
== 判断相等

复合赋值符
+= -= *= /= 这些都称为复合赋值符

你可能感兴趣的:(c语言)