本帖最后由 a3563365 于 2015-1-18 22:48 编辑
这个只能用(2<<3)-2了吧...这样是最优的....不知道楼主学过数字电子技术没有....计算机是电器的一种...电器是用状态储存数据....也就是计算机的0和1形式....计算机用来计算是通过电路进行的....具体的我不说的太细...总之计算机做乘法和除法是比加法和减法耗性能的多....其实这里说的还不对...计算机其实根本就不分加法和减法...都是加法...这个又涉及到原码.反码和补码的知识...计算机存储数据用的是数据的补码的0 1 形式...负数的的补码是除了符号位外所有位数取反最后再加1...正数加负数的结果就是补码直接相加..如果最高位溢出直接舍弃...运算结果完全正确....... 如果这样你记不住的话你就记计算机是不会算乘法的...电器算乘法要么用特殊结构...要么就用多重相加....特殊结构又导致成本增加...所以你就当做 计算机算2*3 相当于 算2+2+2 这样...所以才耗费性能...虽然不准确...但大体一致 ... 同时,学过数电的都知道,移位操作所用的电路非常简单...性能非常高...所以前一半用移位操作...当移位操作不能完全满足性能要求的时候用加法(减法也是加法)操作在电路的运行过程中所用的时间是最少的...我觉得这样是最节省性能的...如果楼主得到更好的答案记得告诉我哈~ |