c语言操作符详解

1.      在了解c语言操作符之前,我们需要横扫一些概念障碍。原码,反码,补码。(值得一提的是,这些是整数的二进制表示方法)接下来,我举个例子 ,大家就能对这几个概念有个清晰的了解。

首先,正整数的原码,反码,补码均相同。负整数才各不相同。

给这么一串数字10000000 00000000 00000000 00000001,这个二进制就表示-1.

                  再来00000000 00000000 00000000 00000001,这个二进制就表示1

有人发现不同,1和-1的二进制整数表示方式原来只在开头有区别,对的。负数的二进制符号位(也就是首位)是1,而正数的二进制符号位为0。

前面我们说过了只有负数三码才各不相同。接下来我们看看原码是怎么转化为补码和反码的。

10000000 00000000 00000000 00000001———原码

111111111 111111111 111111111 111111110————反码(符号位不变,其他的数字依次取反—0变成1,1变成0)

111111111 111111111 111111111 111111111————补码(在反码的基础上+1)

!!!需要我们注意的是,在对整数的二进制表达式进行操作符运行的,往往都是操作他们的补码,而打印往往打印他们的原码!!

 

2.   移位操作符(只能对整数进行操作)

2.1  <<左移操作符     >>右移操作符   

——<<(左边抛弃,右边补0)

对(10000000 111111111 11111111 00000011)进行<<

       00000001 111111111 11111111 00000110

——>>(右边抛弃,左边补该二进制数的“符号位”)

对 (1000000 111111111 11111111 00000011)进行>>

         1100000  01111111 11111111 10000001

tips.原先的数为负整数,右移后在其最左边应补齐其的符号位“1”。

3.位操作符:& | ^ ~

3.1  &—————(有0即为0,两个都为1才能取1)  按位与

3.2   |——————(有1即为1,两个都为0才能取0)按位或

3.3  ^——————(相同为0,相异为1)按位异或

3.4 ~——————(取反:0变为1,1变为0)按位取反(这是一个单目操作符)

接下来,我们来聊一聊这个^(按位异或)

给这么一个例子(1)a^0==a(任何数按位异或与0都等于它本身)

                             101

                             000 ———101

                            (2)两个数互相按位异或,等到的结果为0

                            因为按位异或指的是,相同为0,相异为1,两个数均相同,所以他们得出来的结果,所有的位数均相同,所以得出来的结果为0000000,即为0

这里讲一个拓展应用,就是如何利用位操作符实现把一个数的二进制表达式中的1(逐个逐个)的去掉,这里有一个表达式为(n=n&(n-1))

例如 n=1111     

      n-1=1110

          &

         n=1110

以此类推,就可以逐个去掉一个数中的二进制数中的1.

考虑大规模电动汽车接入电网的双层优化调度策略【IEEE33节点】(Matlab代码实现)内容概要:本文围绕“考虑大规模电动汽车接入电网的双层优化调度策略”,基于IEEE33节点系统,利用Matlab代码实现对电力系统中电动汽车有序充电与电网调度的协同优化。文中提出双层优化模型,上层优化电网运行经济性与稳定性,下层优化用户充电成本与便利性,通过YALMIP等工具求解,兼顾系统安全约束与用户需求响应。同时,文档列举了大量相关电力系统、优化算法、新能源调度等领域的Matlab仿真资源,涵盖微电网优化、储能配置、需求响应、风光出力不确定性处理等多个方向,形成完整的科研技术支撑体系。; 适合人群:具备电力系统基础知识和Matlab编程能力的研究生、科研人员及从事智能电网、电动汽车调度、能源优化等相关领域的工程技术人员。; 使用场景及目标:①研究大规模电动汽车接入对配电网的影响;②构建双层优化调度模型并实现求解;③开展需求响应、有序充电、微电网优化等课题的仿真验证与论文复现;④获取电力系统优化领域的Matlab代码资源与技术参考。; 阅读建议:建议结合提供的网盘资源下载完整代码,重点学习双层优化建模思路与Matlab实现方法,同时可拓展研究文中提及的其他优化调度案例,提升综合科研能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值