Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#37

AW: Umrechnen von Zahlensystemen

  Alt 1. Sep 2011, 08:00
Ich würde bei falschen Zeichen aber nicht -1 zurückgeben, sondern eine Exception werfen.

[edit] Also so (ist ja jetzt auch egal):
Delphi-Quellcode:
function BinToInt(const BinStr: string): Cardinal;
const
  ERR_TOO_LONG = 'Eingabe "%s" ist zu lang für eine Konvertierung';
  ERR_INVALID_CHAR = 'Ungültiges Zeichen: "%s"';
var
  i, BinWert: Cardinal;
begin
  if Length(BinStr) > SizeOf(Result) * 8 then
    raise Exception.CreateFmt(ERR_TOO_LONG, [BinStr]);
  Result := 0;
  BinWert := 1;
  for i := Length(BinStr) downto 1 do
    begin
      case BinStr[i] of
        '0': ;
        '1': Result := Result or BinWert;
        else
          raise Exception.CreateFmt(ERR_INVALID_CHAR, [BinStr[i]]);
      end;
      BinWert := BinWert shl 1;
    end;
end;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH ( 1. Sep 2011 um 08:20 Uhr)
  Mit Zitat antworten Zitat