int main() { int a = 3; int b = a << 3; cout<<"a="<<a<<",b="<<b<<endl; return 0; }
今天看了看位移运算,发现好多博文计算位移好复杂的样子,自己写了写发现一小规律,不知是否是已存在的算法(亦或是我的猜想不正确),现分享至此,望大家提供意见、建议。
以左位移为例(右位移因时间关系没有尝试),上述代码中,a左位移3位,我猜想的计算方法即:b=a*2^3,若左移n位(32位下当然n不能大于32),则计算式为:b = a * 2^n。
以上计算式仅供参考,本人仅做了简单测试。
原文地址:http://blog.csdn.net/china_zyl/article/details/46244239