Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: bräuchte mal unterstützung (Zahlensysteme)

  Alt 8. Mai 2007, 18:33
Hallo Marco,

mit einem kleinen Trick kannst du das CASE-Statement vermeiden:

Delphi-Quellcode:
function HexToBin(const s: string): string;
const
  HexDigits = '0123456789ABCDEF';
  BinTetrade: array [0..15] of string[4]
    = ('0000', '0001', '0010', '0011', '0100', '0101', '0110', '0111',
       '1000', '1001', '1010', '1011', '1100', '1101', '1110', '1111');
var
  i, iNibble: Integer;
begin
  SetLength(Result, Length(s) shl 2);
  for i := 1 to Length(s) do
  begin
    iNibble := Pred(Pos(Upcase(s[i]), HexDigits));
    Move(BinTetrade[iNibble][1], Result[Succ(Pred(i) shl 2)], 4);
  end;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat