One small (but slow) method of calculating SQRT(N):
Number = N ; Number to take square root of SQRT = 0 K=1 Do While Number > 0 Number = Number - K SQRT = SQRT + 1 K = K + 2 End Do
Another fairly simple (but much faster) method of calculating sqrt(n): is the Newton method:
s(i+1) = { s(i)*s(i) + p }/{ 2*s(i) }or in more detail
Number = N ; input value ;-- we want to finish with s^2 approximately equal to N. Do While (...?...) s = ( s*s + N ) / ( 2 * s ) ; the average of "s" and "N/s". End Do
The Newton method requires a 8-bit into 16-bit division algorithm.
For more theory see
If you want tested implementations for a particular processor, see:
Comments: