Bit zuweisen bei einer Int Variable
-
Hi
ich hab da sone Aufgabe in der Schule bekommen und ich komm absolut nicht weiter such schon seit zwei tagen im inet und hab aber noch net so das richtige gefunden.
Legen Sie in dem gleichen Projekt eine Datei bitfield.cpp und bitfield.h an. Deklarieren Sie vier int Variablen FELD0, FELD1, FELD2, FELD3 als extern in der Datei bitfield.h und legen Sie dann die Variablen in der bitfield.cpp an. Diese vier Variablen sollen als ein aneinander gereihtes Feld von Bits interpretiert werden, wobei FELD0 die Bits 0...31, FELD1 die Bits 32...63, usw. beinhaltet. Implementieren Sie nun eine Routine void set(int index) in der bitfield.cpp, welche ein Bit an der gewünschten index Position auf 1 setzt. Programmen Sie zusätzlich eine äquivalente Routine reset, die allerdings ein bestimmtes Bit auf den Wert 0 setzt. Weiterhin soll es eine Routine test geben, die überprüft, ob ein Bit gesetzt ist oder nicht. Die Routine soll true zurückliefern, wenn das Bit gesetzt ist ansonsten false. Machen Sie nun die Routinen in der bitfield.h Datei bekannt, binden Sie den Header in der main.cpp ein und testen Sie dort die Routinen durch Aufrufe in der main.cpp.
so und das was ich nicht hinbekomme ist zb. bei int FELD0 das Bit 21 auf 1 oder 0 zu setzen.
Vielleicht hat jemand nen Tip für mich ist bestimmt auch ganz einfach nur ich komm net drauf XD.
MFG
-
nutze shift und or operator
-
hm soweit ich weiß ist der shift opererator zum verschieben eines Bit da und das Or zum addieren.
Gut wär erst mal ne Möglichkeit aber gibts das nicht einfacher so von wegen
int FELD0 , index =0 bzw =1??
-
google + c bitfield
-
okay ich hab in die FAQ geguckt und da steht es drinne und noch eine frage wie gebe ich dann eine bestimmte position aus?
-
putchar(data & (1 << bitnum) ? '1' : '0');
-
so einen hab ich noch das mit dem putchar funtzt hät ich nicht gedacht bzw wär ich auch net drauf gekommen
aber kann ich dem noch sagen das er das wasser da rausfindet nicht ausgeben soll ??
-
pad8626 schrieb:
aber kann ich dem noch sagen das er das wasser da rausfindet nicht ausgeben soll ??
Ja, du kannst einen // Kommentar vor die Zeile mit der Ausgabe setzen
(Sorry, für den Sarkasmus, aber du solltest deine Fragen besser formulieren)