Delphi-PRAXiS
Seite 1 von 6  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl (https://www.delphipraxis.net/8519-umrechnen-bin-dez-dez-bin-ohne-shr-oder-shl.html)

Evian 6. Sep 2003 19:22


Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
 
Ein Freund soll für die Schule ein Program schreiben, dass integerwerte in binärwerte umwandelt und sie auf dem Bildschirm ausgibt. Sie benutzen dort Pascal 5.5. und da ich nur Delphi benutze und derartige umwandlungen durch beiligende funktionen meist ohne weiteres umgewandelt werden kann ich ihm leider nicht auf de schnelle weiterhelfen.

Also meine frage, wie kann ich mit Hilfe von Turbo Pascal 5.5 oder üerhaupt Turbo Pascal innerhalb einer Funktion einen integerert in einen Binärwert umwandeln?

Wäre nett, wenn ihr mir wieder mal helfen könntet!

Evian

[edit=Luckie] Mfg, Luckie[/edit]

Evian 6. Sep 2003 20:51

Re: Frage zu Pascal
 
Falls enige überhauüt mit Turbo Pascal gearbeitet haben, TP hat fast den selben wortschatz wie Delphi... nur das es nicht die ganzen Units mit den Hilfsfunktionen gibt, also wenn mir jemand sagen könnte, wie man in Delphi eine dezimal - Zahl in einer binärzahl, ohne die Hilfe einer Funktion wie "inttobin()" umrechnen kann, würde mir das auch schon helfen.

Luckie 6. Sep 2003 20:54

Re: Frage zu Pascal
 
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;
Und was bekomme ich jetzt dafür, dass ich anderer Leute die hausaufgaben mache? :roll:

Evian 6. Sep 2003 21:20

Re: Frage zu Pascal
 
Mh... ich würd Dir ja so einiges geben, aber da es die funktion inttostr und shr unter PASCAL nicht gibt, und somitt die Hausaufgaben noch nicht gemacht sind, kann ich Dir auch nichts geben... *g*

Hast Du nicht noch nen anderen Tip?

Luckie 6. Sep 2003 21:22

Re: Frage zu Pascal
 
Fpür IntToStr kannst du auch val nehmen, sollte es auch unter TP geben. Den Ersatz für ShiftRight (shr) kann ich dir nicht nennen, da ich nie mit TP gearbeitet habe.

Evian 6. Sep 2003 21:25

Re: Frage zu Pascal
 
was genau mach shr, vielleich kann ich das ja anders umsetzen?

Luckie 6. Sep 2003 21:28

Re: Frage zu Pascal
 
Es verschiebt die Bits um angegeben Anzahl von Bits nach rechts.

Evian 6. Sep 2003 21:37

Re: Frage zu Pascal
 
Mh... schade, das hilft mir auch nicht weiter.. ich denke, dass kann ich so einfach in Pascal auch nichte realisieren. :(

Luckie 6. Sep 2003 21:40

Re: Frage zu Pascal
 
Dann implementier den Algorithmus, wie man es auch von Hand machen würde:
Code:
15 / 2 = 7 R1
 7 / 2 = 3 R1
 3 / 2 = 1 R1
 1 / 2 = 0 R1
Der Rest von Oben nach untengelesen ergibt die Zahl im Binärsystem.

Luckie 6. Sep 2003 22:07

Re: Frage zu Pascal
 
Weil mir langweilig war:
Delphi-Quellcode:
function IntToBin(IntNumber: Integer): string;

  function OtherWayRound(s: string): string;
  var
    Loop: Integer;
  begin
    for Loop := length(s) downto 1 do
    begin
      result := result + s[Loop];
    end;
  end;

var
  res: Integer;
begin
  res := IntNumber;
  while res <> 0 do
  begin
    result := result + IntToStr(res mod 2);
    res := res div 2;
  end;
  result := OtherWayRound(result);
end;
Und das war wohl auch Sinn der Aufgabe, diesen Algorithmus umzusetzten. shr hätte wohl das Thema sowieso verfehlt.

Und was bekomme ich jetzt, außer einen feuchten Händedruck und dass dein Freund meine Lorbeeren einstreicht? :roll:


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.
Seite 1 von 6  1 23     Letzte »    

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