<C语言>初识操作符

大家好啊,今天我们来讲一下在C语言中操作符是什么?

--------------------分------------------------------------------界-------------------------------------------线-------------

今日目标:

1.了解操作符以及其分类

好了,话不多说我们进入今日的学习吧!

一、首先,按操作数可以分为这几类:

单目操作符,双目操作符,三目操作符,复合操作符

也可以细分为:

算术操作符、关系操作符、逻辑操作符、赋值操作符、移位操作符、逗号操作符 和 sizeof 操作符

(这里具体就不细讲了,知道有这个东西就行)

按操作数分:

1.单目操作符

只有一个操作数的操作符就是单目操作符(后面的双目,三目也是一样的道理)

!  逻辑取反

意思就是把非0变成0,0变成1;

比如说“ 7 ” 在逻辑取反 “!” 后就变成 “0” ,而“ 0 ”在取反后就变成“ 1 ”

~   按位取反

在计算机中,符号或数字都是以二进制0和1的形式存储的,而“~”就是把存储的0和1进行取反;1变0,0变1

+  正号

-   负号

&  地址符

每个字符在存储在计算机中都会分配一块空间(具体后面指针中会讲到),而“&”就是获取数字或字符所在的空间

2.双目操作符

=      赋值操作符

将操作符的右值赋给操作符的左值;比如说:a的值为1,b的值为2,a=b(将右值赋给左值)后a就被更改为2

+      相加

-      相减

*      相乘

/      相除

如果左右两端的操作数都是整数,那么相除的结果也是整数;比如:“7/2”  因为两端操作数都是整数,所以结果也是整数为“3”;如果想不舍弃小数,只要两端操作数任意一个带上小数就行,如:“7.0/2”或“7/2.0”

%    取余

取余操作符的操作数只能是整数,在使用时就是取两数相除所得的余数,如: "7/2" 就是商3余1,所以结果就是1

<     小于

>     大于

&   逻辑与

两个操作数都为1(真),结果为1(真),否则为0(假)

如:1&1结果为1;1&0结果为0;0&0结果为0

|    逻辑或

两个操作数只要其中一个为1(真),结果为1(真),否则为0(假)

如:1&1结果为1;1&0结果为1;0&0结果为0

^   逻辑异或

当两个操作数不同的时候,结果为1(真),否则为0(假)

如:1&1结果为0;1&0结果为1;0&0结果为0

,  逗号操作符

逗号操作符是用来顺序求值的,求值后整个表达式的值是最后一个表达式的值,逗号操作符是由左向右结合的

如图:

可以看出最后a的值为1,也就是c的值

3.三目操作符(在C语言中只有一个三目操作符)

  ?    :    

这个操作符类似if语句,如:a<b?a:b (a<b算一个操作数)

意思就是,如果a小于b,则输出a;否则输出b

4.复合操作符

<=    小于等于

>=    大于等于

==     等于

判断是否相等相等输出1

!=     不等于

判断是否不等不等输出1

+=    加等

a+=b可以看作a=a+b的缩写

-=    减等

a-=b可以看作a=a-b的缩写

%=   取余等

a%=b可以看作a=a%b的缩写

/=     除等

a/=b可以看作a=a/b的缩写

++   自增

自增分为前置自增和后置自增,每次自增1

后置自增就是先用后自增,如:a=1,b=0;b=a++  这时结果为b=1,a=2(因为先用了,就是先把a赋给b,a在自增)

前置自增就是先自增后用,还是如:a=1,b=0;b=++a  这时结果为b=2,a=2(因为先自增,就是a先自增,在把a值赋给b)

--    自减

参考自增

&=  逻辑与等

a&=b可以看作a=a&b的缩写

|=   逻辑或等

a|=b可以看作a=a|b的缩写

^=   逻辑异或等

a^=b可以看作a=a^b的缩写

<<  左移操作符

把操作数的二进制位左移,左移多少前面的值就顶掉多少,后面就补多少零

如:a=1,a<<1,就是将a的二进制位左移一位(共有32位)

由多少位取决于你计算机是多少位,32位计算机就是有32个0,64位就是有64个0,我们这里假设是32位计算机

就是将1的二进制位"000···中间省略26个零···0001"进行左移, 左移1位后变成  "000···中间省略26个零···0010"  当二进制位发生改变后值也发生改变,1左移一位变成后会2

因为是二进制,所以每左移一位就会增加2的n次方,n指左移的位数,如:1左移一位,就是1*2的一次方,值为2;左移二位,就是2的二次方,值为4

当左移时,如果值为负数,值可能会发生改变(因为表示符号的二进制位在第一位,即第一位如果为0,该数为正;如果为1,该数为负)

C语言中存储数据是以补码的形式存储

在C中共有三种编码:原码,反码,补码

正整数的原码 反码 补码都是一样的(别问为什么,规定就是这样)

但负数的三码却不一样;比如说如-1

它的三码为:

原码 10000000000001

反码 1111111111111110

补码 1111111111111111

第一个是原码的-1
第二个是反码表示的-1,反码即原码除了符号位以外的符号,在全部取反
补码是在反码的基础上再+1
 

>>  右移操作符

把操作数的二进制位右移,参考左移,不用考虑符号问题

5.sizeof  操作符

sizeof操作符可以获得一个字符或类型的字节大小

-----------------分------------------------------------界-------------------------------------线--------------------------

好了,今天我们就先讲到这里了,如果有什么错误请一定要留言指出来,谢谢观看。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>