64,654
社区成员
发帖
与我相关
我的任务
分享
/*我刚看了一个例题,a*8 , 可以写成 a << 3 , 假设a = 2;也就是用2的二进制10左移3位得到二进制10000,换成十进制就是16这样写是没问题的,如果a*7呢? 我自己是这样理解的,2*7相当于2 << (2^3 + 2^0), 也就是(2<<3) + (2<<0),得出的答案却是18??? 不是14??*/
//如题
int a = 2;
int b = a*7;//就是只一句可以用位运算吗? 如果可以,能不能帮我写一个计算过程呢?
int b = (a<<2) + (a<<1) + a;