C语言操作符的使用详解(1)

操作符的分类

朋友们,追秋再一次和你们见面啦!!!!
操作符是我们在学习C语言的一个重要的基础知识,掌握它们,可以让自己变得更加优秀。

算术操作符

算数操作符一共有五个,如下图所示:
在这里插入图片描述
在这些操作符中,大多数的运算法则都是大家所熟悉的,当然有的操作符会有一些其它的运算法则,下面我给大家细细讲解:

/ 操作符

首先是 / (除号)操作符,对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。下面用一组例子来给大家解释一下:
在这里插入图片描述
可以看到其实5。0/2.0的结果是可以得到2.5这个通过正常运算所得到的数字,不过因为X是用整形的形式来接受,所以只保留了整数位;而浮点型float就可以保留小数位。同样可以得到这个结果的类型还有double****类型,这里不给大家一一举例了。
当然,说到这里,肯定就有家人们要问了,那怎么样才能只保留小数点后面一位或者两位呢?下面直接上代码:
在这里插入图片描述
显然,我们只需要在输出函数处加上一些小小的改变就行,具体看上图。

%操作符

% 操作符的两个操作数必须为整数。返回的是整除之后的余数
下面看代码:
在这里插入图片描述

移位操作符

注:移位操作符的操作数只能是整数

整形二进制的组成

而其中,移位操作符操作的是整数的二进制序列,那什么是二进制序列呢?下面给大家讲解一下:
整数的二进制表示形式有三种:原码、反码、补码
二进制数由符号位和数字位组成,共计32bit位,其中8bit位为一个字节,这个接下来会给大家带着补充。

原码

原码:按照数值的正负,直接写出的二进制序列就是原码,下面举例:
在这里插入图片描述
注:0当成无符号数处理!

反码

反码:原码的符号位不变,其他为按位取反;
在这里插入图片描述

补码

补码:反码的二进制数+1就可以得到补码,如上图所示
做了这么多的铺垫,下面终于来到了操作符的环节了,话不多说,直接开始。

<< 左移操作符

移位规则:左边抛弃,右边补零,且是在操作数的二进制序列的补码上进行操作,下面给大家讲解一下:
正数:
在这里插入图片描述
上面是操作符的运算结果,下面给大家讲解原理:
在这里插入图片描述
负数:
在这里插入图片描述
下面给出原理:
在这里插入图片描述
其实大家可以发现,正数和负数的操作原理是相同的,也就是说,对于左移操作符来说,整数的操作是相同的。

>>右移操作符

右移操作符分为两种移位方式:
逻辑右移:右边丢弃,左边补零
算术右移:右边丢弃,左边补原符号位;正数补0,负数补1
下面给大家讲解一下算术右移:
在这里插入图片描述
而逻辑右移大家可以发现,简单粗暴,与左移操作符的方式一样,但是对于负数的移动,会将对象改为正数,而在大多数编译器上都是采用算术右移,因此这里就不要给大家讲逻辑右移了。
通过上面的例子大家可以看到,不论是左移还是右移,会将操作数的大小变为原来的两倍或是变为一半,那移动两位呢?下面给大家举一些例子:
在这里插入图片描述
因此我们可以得出,通过移位操作符可以改变的操作数的大小为2的倍数或是0.5的倍数;这就为以后大家在一些特殊的情况下使用起来提供一个便利的条件。
补充在使用移位运算符时,不要移动负数位,这是标准未定义的

位操作符

& //按位与

按位与:按(操作数的二进制数)位与
操作数的二进制数的补码,同为相比,有0则为0;两者为1才为1。下面举例说明:
在这里插入图片描述
讲到这里,其实我们可以发现:通过移位操作符和按位与&操作符可以得到我们想要的操作数的任意二进制位的大小,下面举例说明:
在这里插入图片描述
:1的二进制序列除了第一位其余都是0,任意数按位与上0就可以得到最低为的大小,辅助以移位操作符就可以得到二进制位的任意位的大小。

| //按位或

按位或:按(操作数的二进制数)位或
操作数的二进制数的补码,同为相比,有1则为1;两者为0才为0。
在这里插入图片描述

^ //按位异或

按位异或:按(操作数的二进制数)异或
操作数的二进制数的补码,同为相比,相同为0,相异为1。下面举例:
在这里插入图片描述
下面将一个常用的用法:
在这里插入图片描述
因为0的二进制序列全是0,所以和其它数按位异或的时候,得到的数就是另一个数本身。
下面给大家分享一个例子:
不能创建临时变量(第三个变量),实现两个数的交换。
方法一:在这里插入图片描述
方法二:
在这里插入图片描述
该方法只适用于整形的交换,且可读性较差,请读者谨慎使用

注:他们的操作数必须是整数,且是对于补码进行操作

赋值操作符

复合赋值符

常见的赋值操作符大家早已了解,下面给大家将一个少见的:
在这里插入图片描述

单目操作符

  • 负值
  • 正值
    & 取地址
    – 前置、后置–
    ++ 前置、后置++
    *间接访问操作符(解引用操作符)
    (类型) 强制类型转换

! 逻辑反操作

变假为真,变真为假
在这里插入图片描述
在这里插入图片描述

sizeof 操作数的类型长度(以字节为单位)

在这里插入图片描述

sizeof和数组:

在这里插入图片描述

~ 对一个数的二进制按位取反

下面用一个例子来说明作用:
在这里插入图片描述
接着将该位改回原来的数值:
在这里插入图片描述

关系操作符

<(小于) >(大于)
<= (小于等于) >=(大于等于)
!= 用于测试“不相等”
== 用于测试“相等”
警告:
在编程的过程中== 和=不小心写错,导致的错误

逻辑操作符

&& 逻辑与
|| 逻辑或

下面给上一个例子:
在这里插入图片描述

条件操作符

exp1 ? exp2 : exp3
这里就是一个简单的逻辑问题,就不给大家细讲了

逗号操作符

exp1, exp2, exp3, …expN
逗号表达式,就是用逗号隔开的多个表达式。
逗号表达式,从左向右依次执行。整个表达式的结果是最后一个表达式的结果。
注:这并不代表只需计算最后一个表达式的值,因为前面的表达式的计算结果会影响最后一个表达式的结果

下标引用,函数调用和结构成员

基础知识,这里也不给大家讲啦啦啦啦啦啦(其实就是想偷懒一下哈哈哈哈哈)

好了,这次的分享就到这里了,感谢各位老铁们的阅读!!!!

期待下次见面,白白!!!!

城市运行管理的重要性与挑战 城市运行体系是以人为本的服务和经济发展体系,涉及决策、管理和执行三个层次。当前城市运行管理面临城市化快速发展、资源环境制约和社会矛盾突出等挑战。信息技术的发展为城市运行管理提供了重要手段,城市信息化经历了数字化、智能化到智慧化的发展过程。我国城市信息化虽取得进展,但仍处于初级阶段,存在缺乏整体规划、资源浪费和协作效率不高等问题。 智慧城市综合运行管理解决方案 智慧城市运行管理中心(SCOC)是支撑城市运行综合管理的神经中枢,旨在掌控城市运行综合体征,促进服务型政府转型。该中心通过全面整合运行资源,服务城市未来发展,提升城市运行水平和突发事件处置效率。中心纵向提升综合职能,横向贯通专业分工,包括综合管理平台、专业管理平台和业务操作平台,覆盖城市交通、公共安全、生态环境等多个领域。 智慧城市综合运行管理平台的结构与功能 智慧城市综合运行管理平台包括决策支持系统、处置系统、基础设施和监测系统。平台通过综合展现系统、综合应急指挥系统、综合运行业务联动系统等,实现城市运行的综合监测和管理。物联网数据采集系统利用网络通讯技术,实现城市物联网设备的高效运行。平台还包含云计算业务支撑系统、城市基础数据库、视频图像云平台等,以支持城市运行管理的各个方面。 智慧城市综合运行管理解决方案的优势 该解决方案具有三个核心优势:首先,它提供了完整的智慧城市视角,不仅仅是指挥中心或数据中心,而是智慧城市的实际载体。其次,它建立了完整的城市运行联动体系,打通业务部门壁垒,形成有机融合的业务联动平台,提升业务处理效率和服务水平。最后,方案凝聚了多年智慧城市建设咨询经验,为城市运行管理提供了成熟的解决方案。 项目实施建议 智慧城市运行管理中心的建设思路和项目实施建议是方案的重要组成部分,旨在指导城市如何有效实施智慧城市运行管理解决方案,以应对城市运行管理的挑战,提升城市管理的智能化和效率。通过这些建议,城市能够更好地规划和实施智慧城市项目,实现可持续发展。
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值