不使用乘法除法模运算实现乘以7除以7
来源:互联网 发布:商业源码诛仙 编辑:程序博客网 时间:2024/05/15 23:54
--------------------------------
x左移2位加上x左移一位加上x
总共两次左移,三次加法,因该速度很快了,而且没有使用乘法
--------------------------------
乘以7:Number Shl 3 -Number
除以7:Number Shr 3 +Number
--------------------------------
上面使用的是
x/7=x/8+x/(8*8)+x/(8*8*8)+...
效率其实已经很高了,因为实际上没有除几次就到0了,
问题在于上面的公式还有误差,要将后面的if改为while.
另外还有的方法是用
unsigned int mul=0xb6db6db7;
unsigned int x;
then x/7 == x*mul; //if sizeof(unsigned int)==4.
当然了,做乘法同样要通过移位和加减来完成。
那么我们需要21次左移加上加法运算(当然还可以通过使用减法降低一次运算)。
其实复杂度比上面的算法也差不多
- 不使用乘法除法模运算实现乘以7除以7
- 只使用++运算实现加法,减法,乘法,除法PHP实现
- 大数运算,队列实现大数 加法、乘法、除法、模除
- 两数相除求商,不能用乘法,除法,取模运算
- 实现整数的乘法,减法和除法运算。只允许使用加号
- [深入理解计算机系统] 计算机如何实现乘法与除法运算
- 大数乘法,加法,除法运算
- 不使用乘法除法循环递归做累加操作
- 在只容许使用++运算符的情况下,请完成下面代码,实现减法,乘法和除法。
- 9.7数学与概率(二)——实现整数的乘法、减法和除法运算,只允许使用加号
- 不用乘法实现一个数乘以2
- 用位运算来代替乘法、除法以及取模
- JS的乘法,除法,取模,加法,减法运算
- 不用乘法、除法及取模运算,构造两个整数的除法
- 只使用加法实现减法,乘法和除法 [# 68]
- 如果X大于0并小于65536,用移位法计算X乘以255的值?(通过二进制位移实现乘法或者除法)
- 浮点加法、减法, 乘法、除法运算
- 移位运算为什么比乘法除法快
- 微软在全国高校举办Silverlight大赛: http://www.msuniversity.edu.cn/static/silverlight/index.html
- C#优化字符串操作【月儿原创】
- Oracle Net服务 -- 理论
- 名称:eXPr
- Programming Windows程式开发设计指南->第四章 例子程序
- 不使用乘法除法模运算实现乘以7除以7
- DX中关于背面剔除概念的澄清!
- 如何实现Windows 与 Linux文件系统共享
- Delphi2007的一个Bug?
- fedira redhat Linux系统守护进程详解
- 网页拖动布局
- 封装的变化之不断变化的需求
- Direct3D: TextureLoad.FromStream的问题.
- 让你的电脑急速如飞,内容更新