Gast
#1482888
FÜR JEDES Bit ab Bit 30 bis Bit 0 in der Variablen "dezi":
Vercshiebe das Bitmuster der Variablen "dezi" so, dass das
aktuelle Bit auf die Position 0 (ganz rechts) kommt. Das Ergebnis
wird in der neuen variablen "aBit" gespeichert .
Führe eine bitweiße AND-Operation der Variablen "aBit" mit
0x00000001 durch. So ergibt sich eine neue Zahl, die wiederum in
"aBit" gespeichert wird .
Gebe nur die Variable "aBit" aus (ohne Zeilenumbruch).
ENDE FÜR JEDES
Hallo,
ich muss oben genannten Algorithmus in C umsetzen und es klappt leider
nicht. Es werden nur positive Werte eingesetzt, und der Algorithmus soll
nun eine dezimal in eine binäre Zahl umwandeln.
FÜR JEDES steht für "for".
Ich habe es so probiert:
int main(){
unsigned int i=0, aBit = 0;
printf("Zahl: ");
scanf("%i", &dezi);
/*Hier der Algorithmus */
for(i=0; i<30; ++i){
dezi >>= 30;
aBit = dezi;
aBit = aBit & 0x00000001;
printf("%i", aBit);
}}
Was, wie mir erst hinter kam, ja nicht funktionieren kann, da bei dezi
>>= 30 nicht das erste sondern alle Bits um 30 nach rechts geschoben
werden. Jetzt komm ich nicht weiter, ich weiß nicht wie ich nur jeweils
das erste Bit verschieben kann. Könnt ihr mir helfen?
Gruß
Bert