Warum nicht wie in der Vorlage?
Delphi-Quellcode:
function CLZ(var x: UInt64): Integer;
begin
if x = 0 then
Result := 64
else
begin
Result := 0;
if x <= $00000000FFFFFFFF then
begin
Result := Result + 32;
x := x shl 32;
end;
if x <= $0000FFFFFFFFFFFF then
begin
Result := Result + 16;
x := x shl 16;
end;
if x <= $00FFFFFFFFFFFFFF then
begin
Result := Result + 8;
x := x shl 8;
end;
if x <= $0FFFFFFFFFFFFFFF then
begin
Result := Result + 4;
x := x shl 4;
end;
if x <= $3FFFFFFFFFFFFFFF then
begin
Result := Result + 2;
x := x shl 2;
end;
if x <= $7FFFFFFFFFFFFFFF then
begin
Result := Result + 1;
end;
end;
end;
Weil das halt mangels UInt64 nicht mit Delphi 4,5,6 zusammen spielt? Deshalb kann auch kein UIntToStr benutzt werden, weil es das damals auch nicht gab...