|
  
- 帖子
- 1213
- 精华
- 10
- 积分
- 13292
- 鲜花
- 340 朵
- 主题
- 53 帖
    
|
我已经实现了一个算法较优的C 语言版本,等汇编算法完成后,将代码贴出来.
这个算法的特点是,对于不同大小的被开方数采用不同的算法。主要技术点有
1. 使用查表和牛顿迭代法相结合,需要一个256BYTE的表格。
2. 需要使用bsr指令和跳转表
3. 不同范围的数使用不同的算法
3.1 当被开方数<64, 直接查表。
3.2 当被开方数<64K, 需要查表,移位,1次调整运算结果(需要乘法,比较指令)。
3.3 当被开方数<256M, 需要查表,移位,1次牛顿迭代,1次调整运算结果(需要乘法和比较指令)
3.4 当被开方数>=256M, 需要查表,移位,2次牛顿迭代,1次调整运算结果(需要乘法和比较指令)
|
|