2013年2月21日

【转】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)

Computer Systems: A Programmer's 第二章信息的表示和处理 总结

摘要: 无符号整数编码B2UwB2U4([0001]) = 0*2^3+0*2^2+0*2^1+1*2^0 = 1B2U4([0101]) = 0*2^3+1*2^2+0*2^1+1*2^0 = 5B2U4([1011]) = 1*2^3+0*2^2+1*2^1+1*2^0 = 11B2U4([1111]) = 1*2^3+1*2^2+1*2^1+1*2^0 = 15补码编码B2Tw 最高有效位(X(w-1))为符号位 B2T4([0001]) = 0*2^3+0*2^2+0*2^1+1*2^0 = 1B2T4([0101]) = 0*2^3+1*2^2+0*2^1+1*2^0 = 5B2T4([10 阅读全文

posted @ 2013-02-21 17:35 FF笔尖 阅读(291) 评论(0) 推荐(0)

导航