Bitshiftoperation
-
Aufgabe: Schreiben Sie ein Programm das eine char Variable bitweise ausgibt. Verwenden Sie dazu die Bit-Operatoren. Das Leerzeichen (ASCII Code 32):
char ch='' wird z.b. als 00100000 ausgegeben.Hinweis: Projezieren Sie die einzelnen Bits aus der char Variable heraus mit Hilfe eines Feldes von Konstanten mit jeweils einem Bit gesetzt (z.B. 0x80) setzt das höchwertigste Bit
Ich habe das mal soweit ich das kann versucht aber leider scheitere ich...
Wenn mir da jemand helfen könnte wäre ich sehr dankbar...#include <iostream> using namespace std; int main (void) { unsigned char array[]= { 0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01 }; unsigned char ch; cout << "Bitte char eingeben: " << endl; cin >> ch; for( int i=0; i<=7; i++) { if (ch & array[i]) cout << "1"; else cout << "0"; } return 0; }
-
ist ja soweit in Ordnung. Das einzige Problem das ich sehe kann mit
ch = getchar();anstatt
cin >> ch;gelöst werden.
Kurt
-
es klappt leider absolut nicht und ich weiss leider nicht an was es liegen könnte...
ich möchte doch einfach nur das er die char variable bitweise ausgibt
-
Gib mal bitte eine genauere Fehlerbeschreibung ab.
-
Machts ja einwandfrei. Deine Version funktioniert nur bei Whitespace nicht.
daher das getchar().
Kurt
-
1. es gibt keine fehlermeldung
aber er sollte z.b. bei eingabe hallo die ausgabe 01101000 bringen
-
Verstehe zwar nicht was die eingabe von "hallo" mit deiner ursprünglichen Beschreibung zu tun hat, Bei mir stimmt dann sogar die Ausgabe "01101000" das zeichen 'h' in binärdarstellung.
Was hast du denn für eine Ausgabe ?
Kurt
-
Je nach Shell könnte es noch helfen vor Programmende noch ein cout << endl zu machen, sonst sieht man nix

-
LordJaxom schrieb:
Je nach Shell könnte es noch helfen vor Programmende noch ein cout << endl zu machen, sonst sieht man nix

lol - das ist mir in meiner ganzen linux zeit auch noch nie unter gekommen^^
dank euch jetzt klappts...
