Variablen zusammenfassen
-
Ich will mein Problem anhand eines Beispiels erklären. Es soll ein einzelnes Zeichen im Binär Code darstellen. Der Code:
#include <iostream.h> #include <conio.h> void bina(char a); int main() { char Zeichen; cout << " Geben Sie ein Zeichen ein: "; cin >> Zeichen; bina(Zeichen); getch(); return 0; } void bina(char a) { int b = (int) a; int e1, e2, e3, e4, e5, e6, e7, e8; e1 = b /128; e2 = (b%128) /64; e3 = ((b%128)%64) /32; e4 = (((b%128)%64)%32) /16; e5 = ((((b%128)%64)%32)%16) /8; e6 = (((((b%128)%64)%32)%16)%8) /4; e7 = ((((((b%128)%64)%32)%16)%8)%4) /2; e8 =(((((((b%128)%64)%32)%16)%8)%4)%2)/1; cout << endl << endl; cout <<"Binaer-Code: "<< e1 << e2 << e3 << e4 << e5 << e6 << e7 << e8 << endl; }
So, funktioniert ja eigentlich auch alles, nur will ich das Ergebniss nicht von der Funktion ausgeben lassen, sondern im Hauptprogramm, also ungefähr so:
[cpp]
int main()
{
char Zeichen;
cout << " Geben Sie ein Zeichen ein: ";
cin >> Zeichen;cout << "Binaer-Code: " << bina(Zeichen) << endl;
getch();
return 0;
}[/cpp]
...also das e1 - e8 in einem String oder einem int als 8-stellige Zahl zusammengefasst sind. Geht das irgendwie?
-
hmmm ... das sieht mir sehr nach einem C++ Problemchen aus.... Meine Lösung, sowas zu machen:
#include <iostream> #include <algorithm> #include <string> #include <cstdio> using namespace std; string int2bin(int f) { string erg; do erg += '0'+(f&1); while (f >>= 1); reverse(erg.begin(), erg.end()); return erg; } int main() { cout << "Bin: " << int2bin(64) << endl; getchar(); }
Als Compiler habe ich den gcc 3.1 verwendet.
-
wenn du nicht gerad gcc benutzt schau mal ob dein Compiler itoa unterstützt,
falls ja numm das
-
warum holst du so einen alten Beitrag hoch?
-
@ pad
der beitrag war von weihnachten.. hmm ist dir auch zu heiß und sehnst dich nach schnee??
-
38 grad im Zimmer, Jolt alle, kurz nach Mitternacht auf alles geschaut nur nicht aufs Datum