Einzelnen Beitrag anzeigen

samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#12

AW: Datentyp "Int64" fehlerhaft?

  Alt 19. Jun 2017, 14:07
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...
  Mit Zitat antworten Zitat