【转】2幂拆分问题
摘要:
2幂拆分问题最近没有合适的床头书可以看,于是索性把CS:APP(深入理解计算机系统)取下来放在床边,睡不着觉时随意翻一翻,以期稳故知新。在CS:APP第2.3.6小节中提到,由于整数乘法指令通常会比加减法和位运算指令会慢上许多,因此编译器有时会做一个优化:用移位和加减法的组合来代替乘以常数因子的乘法,比如x * 18可以写成(x<<4) + (x<< 1), 而x * 7可以写成(x<<3) - x。也就是先把常数因子拆成2幂的组合,然后再进行运算。显然,拆出来的项要越少越好,比如7 = 4 + 2 + 1就不如7 = 8 – 1. 那么任意给定一个整数,怎 阅读全文
posted @ 2013-02-21 17:36 FF笔尖 阅读(134) 评论(0) 推荐(0)
浙公网安备 33010602011771号