Re: Frage zu Pascal
na na!!! Du hast doch wieder inttostr benutzt :) ...
aber müsste es nicht so gehen:
Delphi-Quellcode:
?!
function IntToBin(i: Integer): string;
VAR h, e, c : integer; s, s2 : STRING; BEGIN h := i; e := 0; REPEAT h := h DIV 2; e := i MOD 2; VAL(s,e,c); s2 := s2 + s; UNTIL h < 2; inttobin := s2; end; Evian [edit=Luckie]Delphi-Tags ergänzt. Ein bischen Code formatieren könnte auch nicht schaden. :wink: Mfg, Luckie[/edit] |
Re: Frage zu Pascal
Sorry, auch gerade gemerkt.
Hier die Komplettlösung - hin und zurück:
Delphi-Quellcode:
Probier deinen Code doch aus.
function IntToStr(IntNumber: Integer): string;
begin Str(IntNumber, result); end; function StrToInt(s: String): Integer; var code: Integer; begin val(s, result, code); end; 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; function BinToInt(s: string): Integer; var Loop: Integer; Multiplier: Integer; begin result := 0; Multiplier := 1; for Loop := 1 to length(s) do begin result := result + StrToInt(s[Loop]) * Multiplier; Multiplier := Multiplier * 2; end; end; procedure TForm1.Button1Click(Sender: TObject); const IntNumber = 17; BinNumber = '10001'; begin ShowMessage(IntToBin(IntNumber)); ShowMessage(IntToStr(BinToInt(BinNumber))); end; |
Re: Frage zu Pascal
Hatte am WE keine Zeit mehr..., aber Danke für die Hilfe ohne Deinen Grundansatz hätte ich wohl noch lange gerätzelt!
MFG Evi |
Re: Frage zu Pascal
Grundansatz ist gut. Der letzte Code ist die komplette Lösung.
|
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Ich habe nicht Deinen Code übernommen, sondern mit dem Tip:
15 / 2 = 7 R1 7 / 2 = 3 R1 3 / 2 = 1 R1 1 / 2 = 0 R1 ..einen eigenen gemacht, da Deiner so wie er als letztes Gepostet wurde auch wieder nicht ging. |
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Ich auch :firejump:
Den Thread hatte ich gar nicht gesehen :cry: Hier mal meine Lösung komplett ohne StrToInt und ohne IntToStr. Und ohne OtherWayRound (@Luckie: das wäre auch einfacher gegangen)...
Delphi-Quellcode:
...:cat:...
function IntToBin(Value: Word): String;
const BIN_VALUE: array[0..1] of Char = ('0', '1'); begin Result := ''; while Value > 1 do begin Result := BIN_VALUE[Value and $01] + Result; Value := Value div 2; end; Result := BIN_VALUE[Value and $01] + Result; end; function BinToInt(Value: String): Word; const INT_VALUE: array['0'..'1'] of Byte = (0, 1); var I: Integer; begin Result := 0; for I := 1 to Length(Value) do begin Result := Result * 2; Result := Result + INT_VALUE[Value[I]]; end; end; |
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Halt, da hast du wieder die and-Verknüpfung drin. Ich denke Ziel des Lehrers war es den Algorithmus, wie man es von Hand macht in Programmcode zufassen.
|
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Hm, wenn der Lehrer nicht genug IQ hat, um zu wissen, daß and auch "von Hand" ist, dann halt so:
Delphi-Quellcode:
...:cat:....
function IntToBin(Value: Word): String;
const BIN_VALUE: array[0..1] of Char = ('0', '1'); begin Result := ''; while Value > 1 do begin Result := BIN_VALUE[Value mod 2] + Result; Value := Value div 2; end; Result := BIN_VALUE[Value mod 2] + Result; end; |
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
OK. Mal sehen, ob wir noch eine Rückmeldung zwecks unserer Note bekommen. :gruebel:
|
Re: Umrechnen Bin-Dez / Dez-Bin ohne shr oder shl
Zitat:
fünf -> Setzen. *gggg* Sorry: Das musste sein :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:12 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