aufgabe mit bitoperatoren...
-
Schreiben Sie ein Programm, welches für die Bits Null bis Sieben einliest, ob das jeweilige Bit gesetzt ist. 0 bedeutet, das betreffende Bit ist nicht gesetzt, 1 bedeutet, es ist gesetzt. Verwenden Sie zur Speicherung der Bits Variablen des Typs int. Anschließend soll das Programm die Zahl ausgeben, die dem ganzzahligen Wert entspricht, dessen Bits wie eingegeben gesetzt sind.
und habe ich diese code:
#include <cstdlib>
#include <iostream>using namespace std;
int main(int argc, char *argv[])
{
int bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;
cout<<"bit0";
cin>>bit0;
cout<<"bit1";
cin>>bit1;
cout<<"bit2";
cin>>bit2;
cout<<"bit3";
cin>>bit3;
cout<<"bit4";
cin>>bit4;
cout<<"bit5";
cin>>bit5;
cout<<"bit6";
cin>>bit6;
cout<<"bit7";
cin>>bit7;
cout<<boolalpha
<<bit0<<bit1<<bit2<<bit3<<bit4<<bit5<<bit6<<bit7<<
((1<<bit0)&(1<<bit1)&(1<<bit2)&(1<<bit3)&(1<<bit4)&(1<<bit5)&(1<<bit6)&(1<<bit7)!=0)<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}mfg
toni
-
Hallo
Kannst du mal bitte Codetags benutzen.
chrische
-
-
@toni733: Das einlesen sieht ja schonmal ganz gut aus, trotzdem kann man mit einer Schleife und einem Arrays schöner gestalten.
Beispiel:
int vec[7] = {}; for(size_t i = 0; i < 7; ++i) { cout << "bitte bit" << i << " eingeben: "; cin >> vec[i]; }
Jetzt stehen die Bits schonmal im Array vec. Vermutlich sollst du die Bits in positive Zahlen des Dezimalsystems umwandeln. Dazu ließt du dir mal diese Seite durch. Danach sollte es dir möglich sein, eine schöne einfache Funktion bin2dec() oder ähnliches zu schreiben.
(Falls du dann noch Probleme haben solltest, einfach melden :))
/edit: Bzg. Code-Tags siehe hier.
Gruß Caipi
-
danke habe gelesen und ich habe eine andere code geschrieben aber zeigt fehler
weiss nicht warum.
habe wieder in langen form weil ,wier noch nicht die kurze form ,die du gaschrieben hast ,gelernt haben
hier die code:
#include <cmath>
#include <iostream>using namespace std;
int main(int argc, char *argv[])
{
int bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7;
cout<<"bit0";
cin>>bit0;
cout<<"bit1";
cin>>bit1;
cout<<"bit2";
cin>>bit2;
cout<<"bit3";
cin>>bit3;
cout<<"bit4";
cin>>bit4;
cout<<"bit5";
cin>>bit5;
cout<<"bit6";
cin>>bit6;
cout<<"bit7";
cin>>bit7;cout << ((pow(2,7)* bit7)+(pow(2,6)*bit6)+ (pow(2,5)*bit5)+ (pow(2,4) //der fehler
*bit4)+(pow(2,3)*bit3)+(pow(2,2)*bit2)+(pow(2,1)
*bit2)+(pow(2,0)bit0) )<<endl;
system("PAUSE");
return EXIT_SUCCESS;
}
-
Hallo
Ich will ja wirklich nicht nerven, aber Code-Tags würden deine Text leserlicher machen. Daran solltest vor allem du Interesse haben.
chrische
-
ich weiss nicht wo ist
wenn ich daran nicht interesier wäre dann hätte ich nicht 3 stunden mit diese beschäftigt
wenn du helfen kannst hilfst du mirmfg
toni
-
Hallo
Klick doch einfach mal im Post von Caipi auf den Link für Code-Tags.
chrische
-
hab schon vorher gelesen und gibt nicht
-
Hallo
Wenn du Quellcode hast, dann markierst du diesen und klickst unter dem Textfeld auf den Buttom C/C++. Dann schaust du dir die Vorschau, ob alles geklappt hat und das war's.
chrische
-
#include <cmath> #include <iostream> using namespace std; int main(int argc, char *argv[]) { int bit0,bit1,bit2,bit3,bit4,bit5,bit6,bit7; cout<<"bit0"; cin>>bit0; cout<<"bit1"; cin>>bit1; cout<<"bit2"; cin>>bit2; cout<<"bit3"; cin>>bit3; cout<<"bit4"; cin>>bit4; cout<<"bit5"; cin>>bit5; cout<<"bit6"; cin>>bit6; cout<<"bit7"; cin>>bit7; cout << ((pow(2,7)* bit7)+(pow(2,6)*bit6)+ (pow(2,5)*bit5)+ (pow(2,4) //der fehler *bit4)+(pow(2,3)*bit3)+(pow(2,2)*bit2)+(pow(2,1) *bit2)+(pow(2,0)bit0) )<<endl; system("PAUSE"); return EXIT_SUCCESS; }
jetz so woltest du denn
mfg toni
-
Dein Thread heisst "aufgabe mit bitoperatoren...". Kommt es dir nicht komisch vor, dass du _keine_ Bitoperatoren verwendest?
Schau dir mal Bitoperatoren an, dann wirst du sehen, dass du nicht x Variablen brauchst, sondern nur eine (auch kein Array). Und die Umwandlung ist dann quasi schon gegessen.
-
ich habe shon probiert mit~|& ..etc und geht nicht
kanst du nur anfangen
-
Hallo toni!
Dein Code war schon nah drann, nur wenn du eine Fehlermeldung hast, musst du sie uns auch schicken. Ich hab das Programm jetzt mal compiliert und es kam folgende Fehlermeldung:
31 C:\Dev-Cpp\main7.cpp call of overloaded `pow(int, int)' is ambiguous note C:\Dev-Cpp\include\math.h:150 candidates are: double pow(double, double)
Daraus könnte man doch eigentlich selber drauf kommen, dass die Funktion pow double Werte erwartet. Ich hab die Funktion jetzt mal durch eine ersetzt, welche die int werte nach double castet (umwandelt).
#include <cmath> #include <iostream> using namespace std; int pow(int a, int b) { return static_cast<int>(pow(static_cast<double>(a), static_cast<double>(b))); } int main(int argc, char *argv[]) { int bit0, bit1, bit2, bit3, bit4, bit5, bit6, bit7; cout << "bit0"; cin >> bit0; cout << "bit1"; cin >> bit1; cout << "bit2"; cin >> bit2; cout << "bit3"; cin >> bit3; cout << "bit4"; cin >> bit4; cout << "bit5"; cin >> bit5; cout << "bit6"; cin >> bit6; cout << "bit7"; cin >> bit7; cout << ( (pow(2,7) * bit7) + (pow(2,6) * bit6) + (pow(2,5) * bit5) + (pow(2,4) * bit4) + (pow(2,3) * bit3) + (pow(2,2) * bit2) + (pow(2,1) * bit2) + (pow(2,0) * bit0)) << endl; system("PAUSE"); return EXIT_SUCCESS; }
Dies ist bestimmt nicht die eleganteste Möglichkeit, aber sie funktioniert soweit.
Du solltest in Zukunft auf deine Rechtschreibung achten, z.B. muss man erst raten, was du mit
hab schon vorher gelesen und gibt nicht
meinst. Denn "gibt nicht" enthält kein Subjekt und selbst "gibt's nicht" würde auch nicht sehr schlüssig sein.
mfg.
-
kann jemand eine feine beispiel shreiben?
ich habe den ganzen tag mit diese aufgabe
-
ne keine ahnung
-
toni73 schrieb:
kann jemand eine feine beispiel shreiben?
ich habe den ganzen tag mit diese aufgabe
Mein Beispiel funktioniert doch?
mfg.
-
Mein Beispiel funktioniert doch?]
ja schon aber es gibt keine Bitoperatoren
und ist nicht gewertet
-
bits |= input << i;
Die Schleife drumherum ist nun wirklich deine Aufgabe. Sonst verstehst du das nie. Ausserdem gibt es in wahrscheinlich den meisten Tutorials schöne Beispiele dazu...
-
Lies dir bitte mal in Zukunft durch was du Antwortest:
toni73 schrieb:
ja schon aber es gibt keine Bitoperatoren
Es gibt definitiv Bitoperatoren, aber wahrscheinlich meinst du, dass ich es ohne Bitoperatoren gelöst habe, oder?
und ist nicht gewertet
Meine Fresse!?!?!? Da ist kein Subjekt! Wahrscheinlich meinst du mein Beispiel, und dann frage ich: Meinst du wirlich gewertet? Bei was wurde es nicht gewertet? Oder meinst bewertet? Von wem wurde es nicht bewertet???
mfg.
-
kanst du mir sagen wo ich diese beispiele sehn kann
irgend eine internet seite bittemfg toni