![]() |
Algorithmushilfe bei Konvertierung Dual <=> Dezimal :) Hallo zusammen :) Ich versuch grad zahlen zu konvertieren und scheiter immer wieder an Kleinigkeiten :rolleyes: Also: Ich habe ein Feld mit 100 Stellen (0..99) welches gefüllt ist mit einer beliebigen Dualzahl (z.B. [0,0,0,...,0,1,1,0,1,0,0,1]). Nun möchte ich diese Zahl in einen dezimalen Integer Wert umwandeln. Dazu übergebe ich in einer Zählschleife den aktuellen Wert des Feldes (1 oder 0) und die aktuelle Position im Feld (von rechts beginnend von 99..0) an meine Konvertierungsfunktion (DualToDez). iDez ist dabei die zu berechnende Dezimalzahl: [quote]for(i=99; i>=0; i--) { iDez = iDez + DualToDez(iFeld1[i]->GetInhalt(), 99-i); }[/quote]Ich übergebe also an eine Funktion den Inhalt des Feldes an der Stelle 99 bis 0, sowie den Wert 99-i (i = Anzahl der Stelle). So müsste ich also 2^0 + 2^1 usw bekommen. Aber wie realisiere ich das jetzt in der besagten Funktion? Steh echt aufm Schlauch :( Wenn jmd. Pseudocode anbieten könnte wäre das echt klasse :) mfg |
AW: Algorithmushilfe bei Konvertierung Dual <=> Dezimal :) Wenn ich deine Frage richtig verstanden hab, vlt. sowas: int DualToDez(int inhalt,int index) { return inhalt*(2^index); } Bitte nicht hauen wenns murks ist ^^ mfg Point |
AW: Algorithmushilfe bei Konvertierung Dual <=> Dezimal :) Jo danke :) So was ähnliches hab ich auch schon probiert, geht leider nich so einfach mit dem Exponent ;) Habs mittlerweile raus: Dual nach Dezimal: [code]for (i=0; i<100; i++) { iDez = iDez*2 + iFeld1[i]->GetInhalt(); } printf("Dualzahl 1 in Dezimal : %d", iDez);[/code] Und das ganze auch wieder zurück: [code]iDez = Integer.GibWert(); i = 99; do { iRest = iDez % 2; iDez = iDez / 2; if( iRest != 0) { iFeldDD[i]->SetInhalt(1); } else { iFeldDD[i]->SetInhalt(0); } i--; } while(iDez > 0); printf("Dezimalzahl nach Dual : "); for(i=0; i<=99; i++) { printf("%d", iFeldDD[i]->GetInhalt()); }[/code]Trotzdem danke :) mfg |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 14:05 Uhr. |
Powered by vBulletin® Version 3.8.10 (Deutsch)
Copyright ©2000 - 2026, vBulletin Solutions, Inc.
SEO by vBSEO 3.5.2 ©2010, Crawlability, Inc.