首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请赐教,请帮忙看一下面试题,解决思路

2012-03-30 
请赐教,请帮忙看一下面试题,optimize the follow code使用 & | ~int ab*4int ab*72int ab%1int a

请赐教,请帮忙看一下面试题,
optimize the follow code
使用<< >> & | ~

int a=b*4
int a=b*72
int a=b%1
int a=b%16
int a=(b+c)/2
int a=(b*3)/8

题目大概就是怎么样计算才高效的意思,c++新手,请教一下大家啊,谢谢

[解决办法]
int a=b*4。。。。。 a = b << 2 (左移一位就是乘2右移一位就是除二)
[解决办法]
int a=b%1。。。。 a = b & 0
[解决办法]
int a=b%16。。。。。。a = b & 0x0f
[解决办法]
其实可能编译器自己就会优化,比如VC6下面
m = n * 4;
m = n << 2;
生成的汇编代码都是
shl eax, 2

[解决办法]
int a=b%16 为 a = (b -( ( b >> 4 ) <<4))
[解决办法]
int a=b*72
....int a = b<<6 + b<<3 (估计是这样吧)
[解决办法]
int a = b<<6 & b<<3
 

[解决办法]

探讨
int a = b<<6 &amp; b<<3

热点排行
Bad Request.