位操作符的优先级对输出的影响
Impact of precedence of bit manipulation operator on output
我在visual studio 2008中运行简单的程序。结果如下所示。请帮助我知道为什么在第一种情况下它给出的结果=1024案例1:
#include<windows.h>
#include<iostream>
using namespace std;
int main()
{
int i =4;
k = i<<3 + i<<1;
cout<<"Result "<<k;
return 0;
}
输出1024
case2:
int j=0;
j=i<<3;
int n = i<<1;
k = j+ n;
cout<<"Result "<<k;
输出为40
这都是关于操作符的优先级:
i = 4;
k = i << 3 + i << 1;
// is the same expression as:
k = (4 << (3 + 4)) << 1;
所以4 << (3+4) = 512
和512 << 1 = 1024
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 递归函数计算序列中的平方和(并输出过程)
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 为什么fflush(stdin)对输出没有影响
- 3D 纹理大小会影响程序输出,而不会引发错误
- 没有代码的内联函数会影响输出的二进制
- 为什么将 std::endl 与 ostringstream 一起使用会影响输出速度
- printf输出不受全局区域设置的影响
- iomanip意外影响ctime函数输出
- 使用运算符[]访问一个函数中的字符串会影响C++中另一个函数的输出
- 位操作符的优先级对输出的影响
- 为什么这段代码不影响输出?