Excel不相邻列如何打印在一起-英雄云拓展知识分享
134
2023-11-01
【摘要】 本书摘自《C++程序开发案例课堂》一书中第4章,第1节,由刘春茂、李琪编著。
4.1.5 自增和自减运算符
在 C++ 中,提供了两个比较特殊的运算符:自增运算符++和自减运算符一,对变量的操 作结果是为整型变量加1和减1。
虽然,++和-运算符解释起来非常简单,但是将它放到变量前面和后面的含义有所不 同。下面举个例子来说明:
“a=++numl;” 这总的来看是一个赋值语句,把++num1 的值赋给 a, 因为自增运算符在 变量的前面,所以num1 先自增加1变为5,然后赋值给a, 最 终a 也为5。
“b=num2++;” 这是把 num2++ 的值赋给 b, 因为自增运算符在变量的后面,所以先把 num2 赋值给b,b 应该为8,然后num2 自增加1变为9。
如果出现下面的情况:
c=num1+++num2;
到底是 “c=(numl++)+num2;” 还 是 “c=numl+(++num2);”, 这要根据编译器来决定,不同的 编译器可能有不同的结果。所以在以后的编程中,应该尽量避免出现这种复杂的情况。
下面使用一个实例来说明自增和自减运算符的使用方法。
【例4-5】自增自减(代码4-5.txt)。
新建名为 zztest 的C++Source File 源程序。源代码如下:
【代码剖析】
在这个例子中,首先定义 int 型变量 a 并赋值为10,定义 int 型变量 flag 并赋值为 a, 然后 a 再自加1;先输出 flag, 再输出 a; 先将 a 自加1,赋值给flag, 输出flag。将a输出,再自减1。
运行结果如图4-5所示。
从结果来看,使用“++”和“-- ”对 a 进行了自增和自减操作,验证了自增和自减的功能。
4.1.6 位 逻 辑 运 算 符
前面介绍了逻辑运算符,本节介绍一下位逻辑运算符。位逻辑运算符与逻辑运算符有些 相似之处,它也分为与、或、非等。
位逻辑运算符是对每位进行操作而不影响左右两位,这有别于常规逻辑运算符,常规逻 辑运算符是将整个数进行操作的。表4-5列出了位逻辑运算符及其功能。
例如:
~(10011010)=(01100101)
按位取反时,如果操作数不是32位,会自动转为32位进行取反。
2.&按位取与
只有两个操作数都是1时结果才是1,否则为0。
3. |按位取或
两个操作数任意一位为1,结果就是1。
4. A 按位异或
两个操作数不同为1,相同为0。
下面使用一个实例来说明如何运算。
【例4-6】使用位逻辑运算符(代码4-6.txt)。
新建名为wtest 的C++ Source File 源程序。源代码如下:
【代码剖析】
在该例的主程序中,首先定义 int 型变量 a 并赋值为10,定义int型变量b 并赋值为12。定义 int型变量 flag 并赋值为“a 按位取反”,输出 flag; 给flag 赋值“a 按位与b”, 输出 flag; 给 flag 赋值“a按位或 b”, 输出 flag; 给 flag 赋值“a 按位异或
b”, 输出 flag。
图4-6 使用位逻辑运算符
运行结果如图4-6所示。
从整个示例来看,对4种按位逻辑运算操作,验证了按位逻辑运算功能。
4.1.7 移位运算符
在 C++ 中,移位运算符为双目移位运算符,有<<(左移)和>>(右移)。移位运算符组成的表 达式也属于算术表达式,其值为算术值。
左移运算是将一个二进制位的操作数按指定移动的位数向左移位,移出位被丢弃,右边 的空位一律补0。右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被 丢弃,左边移出的空位或者一律补0,或者补符号位,这由不同的机器而定。在使用补码作为 机器数的机器中,正数的符号位为0,负数的符号位为1。
在 C/C++ 语言中,移位操作不要超过界限,否则,结果是不可预期的。
下面通过一个实例来说明按位移动的使用方法。
【例4-7】使用移位运算符(代码4-7.txt)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~