Das ist also ein Update zu meinem letzten Post, aber ich habe immer noch große Schwierigkeiten zu verstehen, wie das funktioniert. Also gab ich die Hauptfunktion:Bitweise Operationen und Einstellung "Flags"
void set_flag(int* flag_holder, int flag_position);
int check_flag(int flag_holder, int flag_position);
int main(int argc, char* argv[])
{
int flag_holder = 0;
int i;
set_flag(&flag_holder, 3);
set_flag(&flag_holder, 16);
set_flag(&flag_holder, 31);
for(i = 31; i >= 0; i--) {
printf("%d", check_flag(flag_holder, i));
if(i % 4 == 0)
printf(" ");
}
printf("\n");
return 0;
}
Und für die Zuordnung sollen wir die Funktionen Set_Flag und check_flag schreiben, so dass der Ausgang ist gleich:
1000 0000 0000 0001 0000 0000 0000 1000
Also von dem, was ich verstehe, , sollte die "set_flag" -Funktion verwenden, um sicherzustellen, dass das n-te Bit 1 ist. Und die Funktion "check_flag" gibt eine Ganzzahl zurück, die 0 ist, wenn das n-te Bit 0 ist, und 1, wenn es 1 ist verstehe, was "set_flag" wirklich macht, und wie 3, 16 und 31 als "flags" gespeichert werden, die dann als 1 in "check_flag" zurückkommen.
Was haben Sie versucht und wo versagen Sie? Bitte lesen Sie [So erstellen Sie ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) –