问题标题:
计算机是如何实现的开方运算?[db:内容]
问题描述:
计算机是如何实现的开方运算?
[db:内容]
陈志新回答:
一般有牛顿迭代法和移位法.
现在用迭代法的应该还有,在此简介下移位法,假定32位四字节数,开方得到16位两字节结果:
一、清零三字节中间寄存器(余数不会超过三字节),置结果寄存器为0x0001
二、以中间寄存器为高,开方数为低,左移两次,也就是将开方数的最高两位移到中间寄存器
三、比较中间寄存器和结果寄存器,若结果寄存器大则结果寄存器左移一次并减一;小于或等于则结果寄存器左移一次并加一,同时中间寄存器减结果寄存器
四、重复二、三步十五次;然后执行二步,第三步比较后不左移结果,仅结果寄存器大于中间寄存器时减一
五、至此得到十六位结果还有一个牛顿迭代法Xn+1=1/2(Xn+S/Xn)S=要进行开方运算的数(大于1)X0可以取大于1小于S的数进行迭代运算,一般到X12就很精确了.
点击显示
数学推荐
热门数学推荐