![]() |
AW: Umrechnen von Zahlensystemen
Zitat:
|
AW: Umrechnen von Zahlensystemen
ok war n dummer fehler, ich hatte nicht x dem edit 1 zugewiesen, aber er rechnet immer noch nicht ganz richtig:
12 sind jetzt 0110 statt 0011. und 0110 sind nur 6...aber ich erkenne en fehler nicht. bitte hilfe. |
AW: Umrechnen von Zahlensystemen
Bitte editiere deine Beiträge, wenn du kurz hintereinander mehreres sagen willst. (Mehrfachposts sind nicht so gerne gesehn)
Und zum Debugger: schau dir mal das Menü "Start" genauer an. Ich weiß jetzt nicht genau, was alles schon in D6 möglich war, aber z.B. auf die erste Zeile deiner Prozedur gehen und F5 drücken (Haltepunkt setzen) dann mit F9 das Programm starten mit F7 / F8 kann man dann einzelne Zeilen/Befehle ausführen Mit der Maus über eine Variable zeigen und dann zeigt Delphi einem den Wert an und eventuell gibt es unter Ansicht > Debugfenster auch sowas wie Überwachte Ausdrücke, wo man den Namen einer Variable eintragen und sich deren Wert anzeigen kann. Auch versteckt sich vermutlich im Kontextmenü des Codefensters einige schöne Einträge zum Anzeigen/ändern von Werten. |
AW: Umrechnen von Zahlensystemen
mhhh naja, aber ich würd gern mal wissen warum er falsch rechnet, eigentlich stimmt doch die syntax
edit: hab jetztnoch was entdeckt: er versetzt immer eine null an die falsche stelle: 50 wären ja: 110010 programm rechnet: 011001 genau wie bei 12 12 wären: 1100 programm rechnet:0110 habt ihr vlt. ne idee woran das liegen könne!? |
AW: Umrechnen von Zahlensystemen
Du merkst Dir den Wert des niederwertigsten Bits nicht, sondern dividierst sofort durch 2.
|
AW: Umrechnen von Zahlensystemen
ok, das versteh ich nicht so richtig,
könntest du mir das genauer erklären. danke |
AW: Umrechnen von Zahlensystemen
Das allererste, was du machst, ist, durch zwei zu dividieren. Dadurch verlierst du schon ein "y" Wert.
Dh. du musst die Reihenfolge vertauschen: y := x mod 2 x := x div 2 Edit Zitat:
Diesmal muss es aber vorne dran: denn du müsstest folgendes aussagen, anstatt dieses Zitat:
|
AW: Umrechnen von Zahlensystemen
ja jetzt funktioniert es,
vielen dank an alle von euch, dass ihr mir so geholfen habt. Jetzt habe ich allerdings noch ein Problem beim umrechnen von binaer zu dezimal, und zwar rechnet er hier auch nicht richtig. Könntet ihr mal bitte einen blick drauf werfen:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var n, result, y: Integer; x, s1, s2, s3, s4: String; begin x:=(edit1.Text); n:=Length(x); if n=1 then begin y:=StrToInt(edit1.Text); result:=y*1; edit2.Text:=IntToStr(result); end; if n=2 then begin s1:=copy(x,2,2); s2:=copy(x,1,1); result:= StrToInt(s1)*1 + StrToInt(s2)*2; edit2.Text:=IntToStr(result); end; if n=3 then begin s1:=copy(x,3,3); s2:=copy(x,2,2); s3:=copy(x,1,1); result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4; edit2.text:=IntToStr(result); end; if n=4 then begin s1:=copy(x,4,4); s2:=copy(x,3,3); s3:=copy(x,2,2); s4:=copy(x,1,1); result:= StrToInt(s1)*1 + StrToInt(s2)*2 + StrToInt(s3)*4 + StrToInt(s4)*8; edit2.Text:=IntToStr(result); end; if n>4 then begin showmessage('Es können nur Zahlen mit max 4 Stellenumgerechnet werden.'); end; end; oder habt ihr vlt einde idee, wie man das in einer schleife umsetzen kann, ohne diese if-Verschachtelung. danke schon mal im vorraus. |
AW: Umrechnen von Zahlensystemen
Du weist nirgendswo Werte den s1, .., s4 Variablen zu!
Mit ner Schleife ginge es evt. so (sollte auch für dich verständlich sein)
Delphi-Quellcode:
var
binStr : String; binVal : Integer; decVal : Integer; i : Integer; begin binStr := edit1.Text; decVal := 0; binVal := 1; for i := Length(binStr) downto 1 do begin if binStr[i] = '1' then decVal := decVal + binVal; binVal := binVal * 2; end; edit2.Text := IntToStr(decVal); end; |
AW: Umrechnen von Zahlensystemen
Beitrag gecancelt, hatte die Frage falsch verstanden.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:00 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-2025 by Thomas Breitkreuz