C语言基础学习(C语言零基础课程中的运算符和表达式)
运算符和表达式
运算符:运算符用于执行程序代码操作,并将对多个操作数进行运算。比如:2+3,它的操作数是2和3,运算符是“+”
操作数:操作符作用的实体。操作数指示由指令执行的操作所需的数据源。
表达式:是数字、运算符、数字分组符号(括号)、自由变量等的组合。通过有意义的排列方法可以得到数值。
表达写作规则
1、操作人员不能相邻。例a+-b是错的。
2.乘法符号不能省略。x列乘以y应该写成x*y而不是xy。
3.多层括号可以用来表示操作顺序。括号必须成对出现,并且使用圆括号。
运算符优先级和结合性
所谓优先级,就是当一个表达式中有多个运算符时,先计算谁,后计算谁。其实这个是我们小学学算术的时候学的,比如1+4÷2。
那么什么是“结合”呢?优先级都是优先级不同的操作员参与运算时,先算谁,再算谁。但如果运营商优先级相同,那么先计算谁,再计算谁呢?这是由“组合”决定的。
比如1+2×3÷4,乘除优先级相同,但从左到右计算,即先算乘法再算除法,所以乘除组合是从左到右。就这么简单!
操作员分类
按所需操作数分类:
单目操作者
双目操作员
三元运算符
按功能分类:
算术运算符
标志
功能
+
单眼矫正
-
单眼底片
+
增加
-
负的
*
多样地
/
除...之外
%
交付
单目加减不改变操作数的值。int num = 10-num;//是表达式的值-10 num或10
整数除法会向下舍入。5/2 == 25/2.0 == 2.5
模运算只适用于整数。5%2 == 15.2%2//语法错误
赋值运算符
标志
功能
=
估价
+=
估价
-=
估价
*=
估价
/=
估价
%=
估价
=
估价
将数据(常量或表达式)赋给变量。int age = 18年龄+= 2;//年龄=年龄+2;年龄+=5-3岁;//年龄=年龄+(5-3);
关系运算子
标志
功能
>
比...更大
=
大于或等于
0 ?“正”:“负”);printf((5 > 0)?(“正”):“负”);//为了避免令人眼花缭乱,可以在每个表达式中添加括号运算符。
标志
功能
记忆技能
&
一点一点地
0是0。
|
按下钻头或
有一个,然后一个。
^
按位异或
与0相同,与1不同。
~
单眼否定
0比1,1比0。
右移
从右向左移动以填充0。
位运算只针对整数和字符类型,直接对二进制进行运算。
按位和&
其实这个符号和逻辑and运算&&的意思是一样的,只是作用于每一位。
0如果有0:对于每一位,两个数都为真,则为真,否则为假。
3-> 0b 0000 0011 2-> 0b 0000 0010 3&2 ->0b 0000 0010
按或|
同理,和逻辑OR运算||,意思一样,但是作用于每一位。
对每个人来说,凡是真的就是真的,否则就是假的。
3-> 0b 0000 0011 2-> 0b 0000 0010 3|2 ->0b 0000 0011
按位异或
同为0,差为1:对于每一位,只要同为0,差为1。
3-> 0b 0000 0011 2-> 0b 0000 0010 3^2 ->0b 0000 0001
逐位反转
求反是单目算子,对每一位求反,即0变1,1变0。
6-> 0b 0000 0110 ~6-> 0b 1111 1001 //补码:最高位变成了符号位,所以结果肯定是一个负数 0b 1000 0110 //反码 0b 1000 0111 //原码 result: -7
左移
左移操作是将这0,1,1整体左移N位,右边缺失的会补0。
3-> 0b 0000 0011 3 0b 0000 0010 2>1 -> 0b 0000 0001 ==1 2-> 0b 0000 0010 2
以上就是由优质生活领域创作者 嘉文社百科网小编 整理编辑的,如果觉得有帮助欢迎收藏转发~
本文地址:https://www.jwshe.com/623275.html,转载请说明来源于:嘉文社百科网
声明:本站部分文章来自网络,如无特殊说明或标注,均为本站原创发布。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。分享目的仅供大家学习与参考,不代表本站立场。