位运算陷阱(位运算符的优先级)

原创 2015年11月18日 23:49:47

运行一下代码:

#include<iostream>
#include<cstdio>
using namespace std;
int main()
{
	int a=10;
	printf("%d %d\n",a>>2,a-a>>2);
	printf("%d %d\n",a>>2,a-(a>>2));
	return 0;
}
运行结果如图,这是 我在写线段树发现的,一直WA,就试着输出所有的叶子节点,跟踪后发现这个问题:
这里我们可以看到‘-’运算符比‘>>’运算符优先级高。

这提醒我们使用运算符的时候一定要注重优先级的运算问题,不然因为这些小问题而导致整个程序崩溃就不好了,尤其是这些问题不容易查找到。

运算符的优先顺序



版权声明:本文为博主原创文章,你若想转载请附上源博客地址。

C 语言运算符优先级(记忆口诀)

优先级 运算符 名称或含义 使用形式 结合方向 说明 1 [] 数组下标 数组名[常量表达式] 左到右   () 圆括...
  • u013630349
  • u013630349
  • 2015年08月12日 15:09
  • 7431

Swift 高级运算符

除了基本操作符中所讲的运算符,Swift还有许多复杂的高级运算符,包括了C语和Objective-C中的位运算符和移位运算。   不同于C语言中的数值计算,Swift的数值计算默认是不可溢...
  • sqc3375177
  • sqc3375177
  • 2014年06月12日 23:31
  • 2479

逻辑运算符、位运算符、移位运算符、三目运算符、运算符的优先级

一、逻辑运算符 :逻辑运算符的作用是用于连接布尔表达式的。 1、& (与,并且) 规律: 只有左右变量同时为true,那么结果才是true,否则就false。2、| (或,或者) 规律: 只要...
  • qq_34944851
  • qq_34944851
  • 2016年09月22日 11:00
  • 2007

C语言运算符优先级(超详细)

转自: http://blog.csdn.net/huangblog/article/details/8271791 每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!...
  • yuliying
  • yuliying
  • 2017年06月07日 11:44
  • 978

你真的了解位运算?用了这个运算符,算法的时间复杂度竟然降了一个数量级!

其实这个运算符很容易被人忽略,他就是C语言中的位异或运算符^ 位运算符家族中,最常用的,莫过于异或运算符。 我们先看异或运算符的定义: 参与运算的两个值,如果两个相应位相同,则结果为0,否则为1...
  • youshaoduo
  • youshaoduo
  • 2017年04月05日 14:39
  • 4233

Python按位运算符,字典,运算符优先级的基本总结

python的按位运算的原理分析以及运算符优先级的典型案例
  • liugan5371375
  • liugan5371375
  • 2016年04月30日 00:38
  • 715

位运算总结(按位与,或,异或)

按位与运算符(&) 参加运算的两个数据,按二进制位进行“与”运算。 运算规则:0&0=0;  0&1=0;   1&0=0;    1&1=1;       即:两位同时为“1”,结果才为“1”...
  • sinat_35121480
  • sinat_35121480
  • 2016年12月07日 23:40
  • 3959

PHP位运算符详解

位运算符位运算符是指对二进制位从低位到高位对齐后进行运算。 符号 作用 举例 个人理解 & 按位与 $m & $n 全1为1,否则为0 | 按位或 $m | ...
  • qq_28602957
  • qq_28602957
  • 2016年08月07日 10:46
  • 3275

位运算符(&【按位与】,|【按位或】,^按位异或,~【按位取反】,<<【向左移动】,>>【向右移动】)

位运算 在这里,将小结一下位运算符的运算,废话就不这么多了 位运算符有按位与(&),按位或(|),按位异或(^),按位取反(~),向左移动(>) 现在给出两个变量,$m=8,$n=12;问:...
  • pan_xi_yi
  • pan_xi_yi
  • 2015年05月23日 13:02
  • 1303

无优先级运算 回溯 Java

问题描述: 给定n个正整数和4个运算符+,-,*,/,且运算符无优先级,如2+3×5=25。对于任意给定的整数m,试设计一个算 法,用以上给出的n个数和4个运算符,产生整数m,且用的运算次数最少。...
  • u011980994
  • u011980994
  • 2013年11月27日 14:24
  • 1808
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:位运算陷阱(位运算符的优先级)
举报原因:
原因补充:

(最多只允许输入30个字)