Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Dezimal in Binär umwandeln (https://www.delphipraxis.net/14343-dezimal-binaer-umwandeln.html)

brutus 7. Jan 2004 13:00


Dezimal in Binär umwandeln
 
Mal ne gaanz dumme Frage wie kann ich (ohne Rekursion) eine dezimal Zahl in eine Binär Zahl umwandeln ohne die Verwendung von div u.s.w. !

d.h. wie kann ich dass für jemanden machen der bei einen Lehrer Unterricht hat, der keine Ahnung von Informatik hat ? ? ?

Matze 7. Jan 2004 13:04

Re: Dezimal in Binär umwandeln
 
Hi!

Das hat Luckie mal geschrieben, vielleicht hift es dir ein bisschen weiter. :roll:

Delphi-Quellcode:
function IntToBin(Int: Integer): String;
var
  i : Integer;
begin
  Result := '';
  for i := 7 downto 0 do
  Result := Result + IntToStr((Int shr i) and 1);
end;

function BinToInt(Binary: String): Integer;
var
  i : Integer;
begin
  Result := 0;
  for i := Length(Binary) downto 1 do
  Inc(Result, StrToInt(Binary[i]) * 1 shl (Length(Binary) - i));
end;

brutus 7. Jan 2004 13:07

Re: Dezimal in Binär umwandeln
 
noch zu kompliziert :( ich brauche einen quelltext der nur mit Schleifen und +,*,- arbeitet !

der lehrer ist leider ein vollommener trottel :wall:

Christian Seehase 7. Jan 2004 19:46

Re: Dezimal in Binär umwandeln
 
Moin Brutus,

so ginge es dann "zu Fuss":

Delphi-Quellcode:
function IntToBin(const AdwValue : DWORD) : string;

  function PowerOf2(const AbExponent : byte) : DWORD;

  var
    i : byte;

  begin
    Result := 1;
    for i := 1 to AbExponent do inc(Result,Result);
  end;

var
  dwPower : DWORD;
  i      : integer;
  dwValue : DWORD;

begin
  Result := StringOfChar('0',32);
  dwValue := AdwValue;
  for i := 31 downto 0 do begin
    dwPower := PowerOf2(i);
    if dwValue >= dwPower then begin
      Result[32-i] := '1';
      dec(dwValue,dwPower);
    end;
  end;
end;
Statt inc und dec lässt sich das natürlich auch mittels + und - ausdrücken.

brutus 8. Jan 2004 20:05

Re: Dezimal in Binär umwandeln
 
danke ich glaube dass ist "dumm" (d.h. absolut voll Genial) genug.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:36 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz