![]() |
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] |
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.
|
Re: Frage zu Pascal
Delphi-Quellcode:
Und was bekomme ich jetzt dafür, dass ich anderer Leute die hausaufgaben mache? :roll:
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; |
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? |
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.
|
Re: Frage zu Pascal
was genau mach shr, vielleich kann ich das ja anders umsetzen?
|
Re: Frage zu Pascal
Es verschiebt die Bits um angegeben Anzahl von Bits nach rechts.
|
Re: Frage zu Pascal
Mh... schade, das hilft mir auch nicht weiter.. ich denke, dass kann ich so einfach in Pascal auch nichte realisieren. :(
|
Re: Frage zu Pascal
Dann implementier den Algorithmus, wie man es auch von Hand machen würde:
Code:
Der Rest von Oben nach untengelesen ergibt die Zahl im Binärsystem.
15 / 2 = 7 R1
7 / 2 = 3 R1 3 / 2 = 1 R1 1 / 2 = 0 R1 |
Re: Frage zu Pascal
Weil mir langweilig war:
Delphi-Quellcode:
Und das war wohl auch Sinn der Aufgabe, diesen Algorithmus umzusetzten. shr hätte wohl das Thema sowieso verfehlt.
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 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:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz