number systems/de

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de)

Zurück zur Seite Code Beispiele.

Diese Seite beeinhaltet die Umrechnung von Zahlensystemen.
Die beiden Funktionen rechnen Ganzzahlen zwischen dem Dezimalsystem und einem beliebigen Zahlensystem nach dem Hornerschema um.

uses
  ...;
  
  ...
  
implementation
..
const
  conCharDigits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  
  ...
  
function funXInDec(conZahl: string; bytQuellsystem: byte): int64;
  // Die Funktion rechnet jeden Zahlsystem in das Dezimalsystem um
  // Parameter:
  //   Zahl, Zahlensystem
  // Aufruf der Funktion: funXToDec('10100111', 2);
var
  intFor: integer;
  bytWert: byte;
begin
  Result := 0;
  for intFor := 1 to Length(conZahl) do
  begin
    bytWert := Pos(conZahl[intFor], conCharDigits) - 1;
    if (bytWert >= bytQuellsystem) then
    begin
      // Das Unterprogramm wird im Fehlerfall beendet
      Result := 0;
      Exit;
    end;
    Result := Result * bytQuellsystem + bytWert;
  end;
end;

function funDecToX(i64Quelle: int64; bytZielsystem: byte): string;
  // Die Funktion rechnet das Dezimalsystem in jedes beliebige Zahlensystem um
  // Parameter:
  //   Zahl, Zahlensystem
  // Aufruf der Funktion: funDecToX(ZwischenSystem, 16);
begin
  Result := '';
  repeat
    Result := conCharDigits[(i64Quelle mod bytZielsystem) + 1] + Result;
    i64Quelle := i64Quelle div bytZielsystem;
  until (i64Quelle = 0);
end;
  
  ...