HILFE!!! Schleifen
-
nunja das steigt ja also 2 hoch 0, 2 hoch 1, 2 hoch 2, 2 hoch 3 usw.
-
benutz' den links-shift operator
20 -> 1<<0
21 -> 1<<1
22 -> 1<<2
usw...
-
Was zum guguck is der Shift Operator????
Kann man das in einem Beispiel mal anzeigen????Danke...
-
Visual Newbie schrieb:
Was zum guguck is der Shift Operator????
Kann man das in einem Beispiel mal anzeigen????Danke...
net hat dir das schon gezeigt. *g*
20 entspricht im C++ Code:
1 << 021 entspricht im C++ Code:
1 << 122 entspricht im C++ Code:
1 << 2etc.
Mit dem Shift Operator werden die Bits um 1 stelle verschoben und hinten mit 0 aufgefüllt. Was überschwappt fällt weg.
-
Jetzt geh bitte mal davon aus das ich zum erstenmal in meinem Leben eine Blume gesehen habe.... da steh ich auch davor und guck... und wenn jemand sagt, dass ist eine Blume, dann weiß ich noch immer nicht wovon der redet .... verstehst????
Also die Aufgabe lautet eine 8 stellige Dualzahl soll der Compiler in eine Dezimalzahl umwandeln.
Kann man das was net geschrieben hat verwirklichen????
Merci im vorraus für die Mühe....
-
So ich denke ich habs fertig!
#include <iostream> #include <cmath> using namespace std; int main() { int h=0; int S=0; int zahl; for (int a=0;a<=7;a++) { cout<<"Bitte geben Sie die Dualzahl von rechts gelesen ein:\n"; cin>>zahl; zahl=1<<h*zahl; h++; S=S+zahl; } cout<<S<<"DEZ\n"; system ("Pause"); return 0; }Allerdings muss du ein wenig denken.
Du hast z.b. die Dualzahl 11110000 dann musst du zuerst die 0 dann wieder 0 usw eingeben also alle einzeln! Und von rechts nach links!
-
Irgendwie ist alles unklar....
Er errechnet nicht den Wert der Dualzahl, und das sollte das Programm ja eigentlich, oder hab ich was übersehen????
Bitte erklär mir h++, dass hab ich immer noch nicht verstanden
-
Sascha081088 schrieb:
Allerdings muss du ein wenig denken.
Du hast z.b. die Dualzahl 11110000 dann musst du zuerst die 0 dann wieder 0 usw eingeben also alle einzeln! Und von rechts nach links!und hier eine version bei der man nicht denken muss

#include <stdio.h> int main() { char bin[256]; unsigned int res = 0; int s; start: printf ("Binaerzahl eingeben: "); scanf ("%s", bin); for (s=0; s<strlen(bin); s++) { res <<= 1; if (bin[s] == '1') res++; } printf ("%s ist als als Dezimalzahl: %d\n", bin, res); res = 0; goto start; }
-
Vielen Dank, dass du mir das denken ersparst...
Allerdings hast du cstring vergessen .
Folgende Warnung wird ausgegeben...
warning C4018: '<' : Konflikt zwischen signed und unsigned
-
net schrieb:
Sascha081088 schrieb:
Allerdings muss du ein wenig denken.
Du hast z.b. die Dualzahl 11110000 dann musst du zuerst die 0 dann wieder 0 usw eingeben also alle einzeln! Und von rechts nach links!und hier eine version bei der man nicht denken muss

#include <stdio.h> int main() { char bin[256]; unsigned int res = 0; int s; start: printf ("Binaerzahl eingeben: "); scanf ("%s", bin); for (s=0; s<strlen(bin); s++) { res <<= 1; if (bin[s] == '1') res++; } printf ("%s ist als als Dezimalzahl: %d\n", bin, res); res = 0; goto start; }Nunja hat zwar nicht wirklich viel mit C++ zu tun aber egal!
-
Sascha081088 schrieb:
Nunja hat zwar nicht wirklich viel mit C++ zu tun aber egal!
compiliert's nicht bei dir? musst du es u.u. in eine .c datei tun.
-
Ich will doch kein c ich will garnichts ich dachte Visual Newbie wollte einen C++ Code aber egal!
-
Doch kompilliert schon, nur eine Warnung....
for (s=0; s<strlen(bin); s++)
also das <
was bedeuten nun immer diese zwei ++ hinter manchen zahlen??????oder buchstaben....???
-
Sascha081088 schrieb:
Ich will doch kein c ich will garnichts ich dachte Visual Newbie wollte einen C++ Code aber egal!
na, da kanner doch c++ draus machen. ein bisschen soll er ja auch selber zu tun haben, sonst langweilt er sich noch

-
Stand doch schon in einen Code von mir! ++ bedeutet soviel wie +1!
-
Visual Newbie schrieb:
was bedeuten nun immer diese zwei ++ hinter manchen zahlen??????oder buchstaben....???
das nennt sich post-increment. also man kann x = x+1; als x++; schreiben, ist das selbe, hat historische gründe. genauso kannste auch ++x schreiben, was in diesem fall keinen unterschied macht
-
Jetzt müsste man schon ein eigenes Forum gründen,
"Wer hilft Visual Newbie "
* lol *Ne Spaß bei Seite, sorry Sascha hab ich übersehen....
Danke net....Ich versuche grade aus dem Programm schlau zu werden.....
Und überlege mir, ob es umgekehrt auch geht... also Dez in dual...Nur wenn mir die Befehle nix sagen ist das immer schwer....
WIe wärs mit einer kleinen Erklärung noch zusätzlich z.B be printf und ähnlichen schrecklichen ABkürzungen....
Sorry, ich weiß ich bin anstrengend.....
-
Also umgekehrt stelle ich mir schwieriger vor!
Also von C hab ihc fast null ahnung!
-
Mache ja auch c ++ und nicht c.....
Kannst du jeweils Kommentarzeile dazumachen, damit ich weiß was jetzt passiert, also in der jeweiligen Zeile????
-
Visual Newbie schrieb:
Und überlege mir, ob es umgekehrt auch geht... also Dez in dual...
na klar geht das...
Visual Newbie schrieb:
Nur wenn mir die Befehle nix sagen ist das immer schwer....
vielleicht hätteste mal besser aufgepasst - oder der lehrer ist unfähig.
Sascha081088 schrieb:
Also von C hab ihc fast null ahnung!
na, wenn du c++ kennst, dann kannste auch 90% von c