umwandlung von dezimalzahlen ins binäre zahlensystem
-
hallo leute,
weiss nicht ob ich hier richtig bin, hab aber auch nirgends irgendwie eine spur für eine lösung gefunden. deshalb hier mein problem:
ich habe ein kleines program geschrieben, um dezimalzahlen in binäre zahlen umzuwandeln. ist ein anfängerproggie, von nem anfänger zu übungszwecken erstellt. Hier der quellcode:
#include <iostream.h>
int main()
{
int a, b;cout << "Bitte geben Sie eine Dezimalzahl ein: ";
cin >> a;while (a > 0)
{
b = a / 2;
cout << " " << a << " : 2 = " << b << " Rest: " << a % 2 << endl;
a = b;
}
return 0;
}läuft auch prima
...naja bis zu dem punkt der ausgabe. ich will ganz am ende die Binäre zahl in einer zeile ausgeben, und nicht nur mit dem moduloverfahren untereinander.
ich habe echt nirgends einen ansatz von lösung gefunden.ich hoffe ich konnte mein problem darlegen...danke...
-
Lass doch mal das endl weg....
-
Ausserdem musst du sie von hinten beginnend ausgeben (mittels Array).
-
ok...und wie übergebe ich den parameter von der modulorechnung an ein array?
-
int zahl = ???; int bin[32]; //32Bit Zahl angenommen for(int i=31; i>=0; i--){ bin[i]=zahl%2; zahl/=2; //bei bedarf hier schrittweise Ausgabe einfügen } for(int i=0;i<32;i++)cout<<bin[i]; cout<<endl;
-
danke...
-
void binout(int num) { int bitz=sizeof(int)*8-1; while(bitz>=0) { cout<< ((num>>bitz)&1); --bitz; } cout<<endl; }
-
Wie wärs rekursiv?
void bin(unsigned a) { if(a > 0) bin(a/2); cout << a % 2; }
-
void bin(unsigned a) { if(a > 0) cout << (bin(a/2), a%2); }
find ich lustiger
-
void bin(const int a) { if(a>0) { cout<< (bin(a>>1),a&1); } }
-
Intelligente Compiler würden das implizit optimieren.
-
nur das auch clevere compiler meine fehler nicht berichtigen.
muss nat.cout<< (bin((unsigned)(a)>>1),a&1);
wenn man mit signed int arbeitet
-
.b7f7 schrieb:
void bin(const int a) { if(a>0) { cout<< (bin(a>>1),a&1); } }
mach doch mal das if da weg. dafür gibts den ?:-operator.
-
Machst du öfter Sachen, wie "a>0?cout<<(bin(a>>1),a&1):cout;"?
-
@Helium: Pssst, volkard bedient sich öfters der Ironie
.
-
Helium schrieb:
Machst du öfter Sachen, wie "a>0?cout<<(bin(a>>1),a&1):cout;"?
lol...spektakulär...mal gut das sie uns das ?: an der FH verboten haben.