Einzelnen Beitrag anzeigen

ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Konvertierung Binär Dezimal

  Alt 8. Dez 2005, 18:25
So funktionierts:

Delphi-Quellcode:
type
  t0t9=0..9;
  t0t9a=array of t0t9;
 
[...]

procedure addt0t9(var value:t0t9a; const add:t0t9a);
var
  i,j,k,rest,newrest:integer;
begin
  for i:=length(add)-1 downto 0 do begin
    if length(value)<=i then begin
      setlength(value,i+1);
      value[i]:=0;
    end;
    rest:=(add[i]+value[i]) div 10;
    value[i]:=(add[i]+value[i]) mod 10;
    j:=i+1;
    while rest>0 do begin
      if length(value)<=j then
      begin
        setlength(value,j+1);
        value[j]:=0;
      end;
      newrest:=(rest+value[j]) div 10;
      value[j]:=(rest+value[j]) mod 10;
      rest:=newrest;
      j:=j+1;
    end;
  end;
end;

function binaraytostring(const bins:array of boolean):string;
var
  intarray:t0t9a;
  value2add:t0t9a;
  i,j,k,l,m,factor:integer;
  einsweiter:boolean;
  weiter:integer;
begin
  factor:=1;
  for i:=0 to length(bins)-1 do begin
    //in value2add den integerwert des bins speichern
    setlength(value2add,1);
    if bins[i]=true then
      value2add[0]:=1
    else
      value2add[0]:=0;
    //value2add multiplizieren
    for j:=2 to factor do begin
      addt0t9(value2add,value2add);
    end;
    //value2add zu intarray hinzufügen
    addt0t9(intarray,value2add);
    //stellenwert um 1 erhöhen
    factor:=factor+1;
  end;
  result:='';
  for i:=0 to length(intarray)-1 do
    result:=inttostr(intarray[i])+result;
  setlength(intarray,0);
  setlength(value2add,0);
end;
Die Binaries müssen so angegeben werden dass die 1er-Stelle vorne ist (0), die 2er element 1, die 4er element 2, die 8er element 3 usw...
Michael Enßlin
Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß.
Sokrates
  Mit Zitat antworten Zitat