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

原创 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语言运算符优先级(超详细)

每当想找哪个运算符优先级高时,很多时候总是想找的就没有,真让人气愤!现在,终于有个我个人觉得非常全的,分享给大家,欢迎拍砖! C语言运算符优先级 优先级 运算...

java四种位运算

位运算符主要针对二进制,它包括了:“与”、“非”、“或”、“异或”。从表面上看似乎有点像逻辑运算符,但逻辑运算符是针对两个关系运算符来进行逻辑运算,而位运算符主要针对两个二进制数的位进行逻辑运算。下面...

C/C++中的一个巨大的坑:移位操作的优先级问题

对于下面的表达式,运算结果应该是多少? int result = 4 >> 1 + 1; 我不止一次地认为运算结果为4/2+1=3。而实际上,运算结果为:4/4=1。这是由于移位操作的优先级比加法...

一夜发白《千字文》

问题描述 背景       在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华...

一夜发白《千字文》

背景 在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华丽的辞藻成为中华传统文化的一个重要组成部分...

网教9. 一夜发白《千字文》

背景 在古代中国,《三字经》、《百家姓》、《千字文》被合称为三、百、千,都是非常重要的启蒙教育课本,广为流传。而其中问世最早的《千字文》更凭借其优美的文字、华丽的辞藻成为中华传统文化的一个重要组成部...
  • wehan
  • wehan
  • 2016-09-10 13:28
  • 671

memset

memset用法总结

qsort函数学习总结

qsort包含在头文件中,此函数根据你给的比较条件进行快速排序,通过指针移动实现排序。排序之后的结果仍然放在原数组中。使用qsort函数必须自己写一个比较函数。

Java基础(5):位运算的使用方式、运算符优先级的图示

在Java中,位运算常用的就是移位运算了。所以会按照个人的理解去回顾这个知识点,不会太深入。如果对位运算感兴趣的可以去其他博客搜搜,讲解非常详细。  移位运算所进行的操作是在二进制的基础之上对数字进行...

C#位运算及运算符

  • 2012-10-16 12:07
  • 18KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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