Hallo liebe Tutorials.
Ich soll einen Programm schreiben, der Dezimalzahlen in Bitzahlen umrechnet.
Die verändernde Bitnummer 0 oder 1, wird eingelesen.
Das habe ich soweit auch geschafft.
Nun muss das Programm (nach Änderung des Bits) die neue Bitzahl und Dezimal Zahl ausgeben.
Ich mache einen Beispiel, damit ihr besser versteht, was ich meine
Zahl 4; Bitzahl 0100
ich änder die dritte Bit von 1 auf 0=0000
Nun habe ich mir überlegt ob ich es so machen konnte 0100&000 =0000
Nun wird es bei der Bits, die von 0 auf 1 gesetzt nicht funktionieren , da 1&0 ergibt 0
Ich habe lange daran gesessen und weiß nicht wie ich voran komme.
Ich werde mich freuen, wenn jemand sich es anschaut und mir dabei helfen würde
Ich soll einen Programm schreiben, der Dezimalzahlen in Bitzahlen umrechnet.
Die verändernde Bitnummer 0 oder 1, wird eingelesen.
Das habe ich soweit auch geschafft.
Nun muss das Programm (nach Änderung des Bits) die neue Bitzahl und Dezimal Zahl ausgeben.
Ich mache einen Beispiel, damit ihr besser versteht, was ich meine
Zahl 4; Bitzahl 0100
ich änder die dritte Bit von 1 auf 0=0000
Nun habe ich mir überlegt ob ich es so machen konnte 0100&000 =0000
Nun wird es bei der Bits, die von 0 auf 1 gesetzt nicht funktionieren , da 1&0 ergibt 0
Ich habe lange daran gesessen und weiß nicht wie ich voran komme.
Code:
#include <iostream>
#include <math.h>
#include<limits>
#include<bitset>
using namespace std;
int main()
{
int einsen=0;
cout << "Geben Sie eine Zahl ein: ";
unsigned int zahl = 0;
cin >> zahl;
int anzahlDerBytes = sizeof zahl;
int anzahlDerBits = 8 * anzahlDerBytes;
cout <<zahl<<":";
for(int i = anzahlDerBits-1; i >= 0 ; --i)
{
if(zahl & (1 << i))
{
++einsen;
cout << "1";
}
else
{
cout << "0";
}
}
cout<<'\n'<<"Das Bitmuster hat "<<einsen<<" Einsen.";
cout << endl;
unsigned int Bitnummer= 0;
cout<<"Welches Bit (0-31 von rechts beginnend) soll geaendert werden? ";
cin>>Bitnummer;
cout<<endl;
cout<<"Auf welchen Wert (0 oder 1) soll das Bit gesetzt werden? ";
if (Bitnummer>=0 && Bitnummer<32)
{
if (zahl&(1<<Bitnummer))
{
cout<<"0";
}
else
{
cout<<"1";
}
cout<<endl;
}
for(int i = anzahlDerBits-1; i >= 0 ; --i)
{
if((zahl & (1 << i))&(zahl&(1<<Bitnummer)))
{
cout<<"0";
}
else
{
cout<<"1";
}
}
cout<<endl;
return 0;
}
Ich werde mich freuen, wenn jemand sich es anschaut und mir dabei helfen würde