function iSqrt(Val : Longint) : Word; var root,bitSqr : Longint; begin bitSqr := $40000000; root := 0;
While bitSqr <> 0 do begin if Val >= bitSqr + root then begin Dec(Val, bitSqr + root); root := (root shr 1) or bitSqr; end else root := root shr 1; bitSqr := bitSqr shr 2; end; iSqrt := Root; end;
Comments 8
А ты почему не в жаббере?
Reply
А почему я должен быть в Жаббере? :))
Reply
Вот в жаббере и выложил бы.
А почему не должен?
Reply
function iSqrt(Val : Longint) : Word;
var root,bitSqr : Longint;
begin
bitSqr := $40000000;
root := 0;
While bitSqr <> 0 do
begin
if Val >= bitSqr + root
then begin
Dec(Val, bitSqr + root);
root := (root shr 1) or bitSqr;
end
else root := root shr 1;
bitSqr := bitSqr shr 2;
end;
iSqrt := Root;
end;
Reply
Reply
Leave a comment