Hier eine einfache Methode um Zahlen von Dezimal zu Binär umzurechnen. Wir nehmen die Zahl und schieben die einzelne Bits einmal von Links nach Rechts. Bei jeder Verschiebung der Bits teilen wir das Ergebnis durch Zwei, ist die Zahl ohne Rest durch Zwei teilbar speichern wir eine 0 sonst eine 1. Zum vereinfachen nehmen wir uns ein Beispiel an: a = 11 = 1011B ( B steht für Binär)
/**********************************************************
* DEZIMAL ZU BINAER UMRECHNEN MITHILFE VON BITMANIPULATION
***********************************************************/
#include <iostream>
#include <string>
using namespace std;
string DecToBin(int num);
void revers(string &str);
int main()
{
string bin;
int zahl;
cout<<"Programm zum umrechnen von Dezimal zu Binaer"<<endl;
cout<<"Dezimalzahl eingeben ? "<<endl;
cin>>zahl;
bin = DecToBin(zahl);
std::cout<<bin<<endl;;
return 0;
}
string DecToBin(int num)
{
int n = sizeof(num)*8;
string bin;
for(int i=0; i<n; i++)
{
if(num%2==0)
bin +='0';
else bin +='1';
num = num>>1;
}
revers(bin);
return bin;
}
void revers(string &str)
{
string rev = str;
str="";
for(int i=rev.size();i>=0; i--)
str +=rev[i];
} |
|||

"ist die Zahl durch
"ist die Zahl durch Zwei teilbar" Diese Beschreibung ist nicht wirklich richtig, denn jede Zahl ist durch eine andere Zahl teilbar. Es würde besser passen, wenn "die Zahl ohne Rest durch Zwei teilbar" wäre, wie das der Modulo-Operator hier im Bsp. auch macht. MfG Alex H.
Danke für den Hinwei
Submitted by ghannami on Mi, 02/10/2010 - 19:19.
Danke für den Hinweis, so war das ja auch gemeint nur nicht genau ausgedrückt.Fehler korrigiert.
Alternative Lösung