| Autor |
Nachricht |
chaosboy86
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.05.2012
Beiträge: 6
|
chaosboy86 Mitglied
15:29:00 26.05.2012 Titel: |
Probleme bei der Umrechnung |
Zitieren |
Hallo,
ich bin neu hier im Forum und mache ein Studium zum Informatiker. Dort behandel ich gerade C++. So weit verstehe ich alles nur habe ich ein Problem.
Ich soll ein Programm erstellen der Dualzahlen in ein Dezimalsystem umrechnet.
Habe schon ein Programm angefangen zu schreiben aber leider kommt nicht das raus was ich eigentlich haben muss.
der Quelltext sieht folgendermassen aus:
#include <iostream>
using namespace std;
int main()
{
cout << "Umrechnen von Dualsystem in Dezimalsystem" << endl;
cout << '\n';
int zahl, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahl7;
//den Wert einlesen
cout << "Geben Sie einen Dualwert ein: " << endl;
cin >> zahl; zahl1; zahl2; zahl3; zahl4; zahl5; zahl6; zahl7;
//die erste Berechnung
int zwischenergb, zwischenergb1, zwischenergb2, zwischenergb3, zwischenergb4, zwischenergb5, zwischenergb6, zwischenergb7;
zwischenergb = (zahl+(2*7));
zwischenergb1 = (zahl1+(2*6));
zwischenergb2 = (zahl2+(2*5));
zwischenergb3 = (zahl3+(2*4));
zwischenergb4 = (zahl4+(2*3));
zwischenergb5 = (zahl5+(2*2));
zwischenergb6 = (zahl6+(2*1));
zwischenergb7 = (zahl7+(2*0));
//die Ausgabe
int ergebnis = zwischenergb+zwischenergb1+zwischenergb2+zwischenergb3+zwischenergb4+zwischenergb5+zwischenergb6+zwischenergb7;
ergebnis = zwischenergb+zwischenergb1+zwischenergb2+zwischenergb3+zwischenergb4+zwischenergb5+zwischenergb6+zwischenergb7;
cout << ergebnis << endl;
return 0;
}
Ich weiß leider nicht wo direkt mein Fehler liegt.
Kann mir da jemand helfen?
Ich habe schon mit google gearbeitet aber nichts finden können.
danke |
|
|
|
 |
Unregistrierter
|
Unregistrierter
15:40:01 26.05.2012 Titel: |
Re: Probleme bei der Umrechnung |
Zitieren |
| chaosboy86 schrieb: | Hallo,
ich bin neu hier im Forum und mache ein Studium zum Informatiker. Dort behandel ich gerade C++. So weit verstehe ich alles nur habe ich ein Problem.
Ich soll ein Programm erstellen der Dualzahlen in ein Dezimalsystem umrechnet.
Habe schon ein Programm angefangen zu schreiben aber leider kommt nicht das raus was ich eigentlich haben muss.
der Quelltext sieht folgendermassen aus:
#include <iostream>
using namespace std;
int main()
{
cout << "Umrechnen von Dualsystem in Dezimalsystem" << endl;
cout << '\n';
int zahl, zahl1, zahl2, zahl3, zahl4, zahl5, zahl6, zahl7;
//den Wert einlesen
cout << "Geben Sie einen Dualwert ein: " << endl;
cin >> zahl; zahl1; zahl2; zahl3; zahl4; zahl5; zahl6; zahl7;
//die erste Berechnung
int zwischenergb, zwischenergb1, zwischenergb2, zwischenergb3, zwischenergb4, zwischenergb5, zwischenergb6, zwischenergb7;
zwischenergb = (zahl+(2*7));
zwischenergb1 = (zahl1+(2*6));
zwischenergb2 = (zahl2+(2*5));
zwischenergb3 = (zahl3+(2*4));
zwischenergb4 = (zahl4+(2*3));
zwischenergb5 = (zahl5+(2*2));
zwischenergb6 = (zahl6+(2*1));
zwischenergb7 = (zahl7+(2*0));
//die Ausgabe
int ergebnis = zwischenergb+zwischenergb1+zwischenergb2+zwischenergb3+zwischenergb4+zwischenergb5+zwischenergb6+zwischenergb7;
ergebnis = zwischenergb+zwischenergb1+zwischenergb2+zwischenergb3+zwischenergb4+zwischenergb5+zwischenergb6+zwischenergb7;
cout << ergebnis << endl;
return 0;
}
Ich weiß leider nicht wo direkt mein Fehler liegt.
Kann mir da jemand helfen?
Ich habe schon mit google gearbeitet aber nichts finden können.
danke |
Benutz doch einfach eine Schleife:
| C++: | 1 2 3 4 5 6 7 8 9 10 11 12 13 | #include <iostream>
#include <complex>
int main()
{
char const input[] = {"1001"};//Die Dual-Zahl (9)[t]2[/t]
unsigned long long a(0);//Das Ergebnis
for(size_t ct(0);ct < input.length();++ct)///Ein Zähler, der als Index des Strings dient
a += (input[ct] - '0') * std::pow(2, ct); //Addiere die Zweier-Potenzen zum "Ergebnis"
std::cout << a << '\n';
} | |
Geparst wird unter der Annahme, dass die (Edit:) Bit-Reihenfolge Links->Rechts ist. |
Zuletzt bearbeitet von Unregistrierter am 15:46:37 26.05.2012, insgesamt 2-mal bearbeitet |
|
 |
chaosboy86
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.05.2012
Beiträge: 6
|
chaosboy86 Mitglied
15:45:23 26.05.2012 Titel: |
|
Zitieren |
mh ok aber belasse ich dann mein quelltext und füge das mit ein oder wie muss ich das machen???
geht es nicht irgentwie einfacher da ich noch Anfänger bin....
Ich bedanke mich aber trotzdem bei dir.... |
|
|
|
 |
Unregistrierter
|
Unregistrierter
15:48:09 26.05.2012 Titel: |
|
Zitieren |
| chaosboy86 schrieb: | | mh ok aber belasse ich dann mein quelltext und füge das mit ein oder wie muss ich das machen??? |
Junge, bist du doof oder was? Verstehen was ich da gecodet habe, dass sollst du. Ich mach doch nicht deine Hausaufgaben. So lernste doch nix. |
|
|
|
 |
volkard
Moderator
Benutzerprofil
Anmeldungsdatum: 06.04.2000
Beiträge: 25649
|
volkard Moderator
15:48:59 26.05.2012 Titel: |
Re: Probleme bei der Umrechnung |
Zitieren |
|
 |
chaosboy86
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.05.2012
Beiträge: 6
|
chaosboy86 Mitglied
15:49:24 26.05.2012 Titel: |
|
Zitieren |
schuldigung aber man muss nicht gleich unfreundlich werden.... |
|
|
|
 |
DirkB
Unregistrierter
|
DirkB Unregistrierter
15:51:45 26.05.2012 Titel: |
|
Zitieren |
@chaosboy86
Du musst zahl*27 rechnen ( mal und hoch, nicht plus und mal)
Der Button für Programmcode ist nicht B sondern C/C++
@Hacker
Du berechnest die Zahl falschrum. Das fällt bei der 9 aber nicht auf.
Auf das pow kann man auch verzichten.
Dann sieht die Schleife so aus:
| C++: | for(size_t ct(0);ct < input.length();++ct)
a = (input[ct] - '0') + a * 2; | | |
|
|
|
 |
chaosboy86
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.05.2012
Beiträge: 6
|
chaosboy86 Mitglied
15:56:42 26.05.2012 Titel: |
|
Zitieren |
@Dirk lasse ich dann die Klammern weg und wie schreibt man das hoch? z.b. so "^"? |
|
|
|
 |
Unregistrierter
|
Unregistrierter
16:13:18 26.05.2012 Titel: |
|
Zitieren |
| chaosboy86 schrieb: | | @Dirk lasse ich dann die Klammern weg und wie schreibt man das hoch? z.b. so "^"? |
Nein. Das ist der bitweise XOR-Operator.
| DirkB schrieb: |
@Hacker
Du berechnest die Zahl falschrum. Das fällt bei der 9 aber nicht auf. |
Nein. Ich berechne mit einer anderen Bit-Reihenfolge.
| chaosboy86 schrieb: | | schuldigung aber man muss nicht gleich unfreundlich werden.... |
Tut mir Leid
Aber wenn du den Code so übernimmst und nix lernst, werd ich immer ganz böse
@volkard: Der ist nice, den kannt' ich noch nicht.
Aber noch besser wäre doch shiften!!
| C++: | for(size_t ct(0);ct < input.length();++ct)
a += (input[ct] - '0') * (1 << ct); | | |
Zuletzt bearbeitet von Unregistrierter am 16:22:56 26.05.2012, insgesamt 3-mal bearbeitet |
|
 |
chaosboy86
Mitglied
Benutzerprofil
Anmeldungsdatum: 26.05.2012
Beiträge: 6
|
chaosboy86 Mitglied
16:15:58 26.05.2012 Titel: |
|
Zitieren |
@hacker aber wie gebe ich denn sonst bei c++ 2hoch7 ein? |
|
|
|
 |
|
Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
|
|
|
|
|