这个发现平方根算法的名称是什么?

时间:2017-09-29 03:40:34

标签: algorithm assembly x86-64

算法如下:

res <- 0
for i from 15 downto 0 do:
   change the ith bit of result to 1
   if res^2 > x then:
      change the ith bit of res back to 0
return res

我完全理解它是如何工作的,但我不知道这个方法叫什么。我一直在寻找维基的平方根计算方法,但无济于事。这是逐位数字的方法吗?

(相关:How to compute the integer square root of a number in x86-64, without using div?

1 个答案:

答案 0 :(得分:3)

正如Peter Cordes在评论中提到的,这是digit-by-digit algorithm(这里是二进制数字)。

这是一种二元搜索。如果平方结果接近x但不超过它,则设置第i位,因此增加两个近似值所需的功率会更好更好。