Zitat von
Elko:
Zitat von
mkinzler:
Warum willst du das tun?
Weil ich eine 64-Bit lange Zahl aus einzelnen Bits zusammensetzen muss und es dafür keinen Datentyp gibt. Daher hab ich ein Array aus 8 BYtes erstellt, was ja 64 Bit entspricht. Die Frage ist jetzt nur noch, wie ich diese "Zahl" aus einzelnen Bits zusammensetzen kann.
@Dax: Was meinst du denn?
Ein kleiner Hinweis noch dazu, was schiefläuft: Das erste Byte bekommt wie erwartet den Wert FE. Das zweite BYte, das ja eigentlich "3" enthalten müsste, ist aber immer noch "0"...
Gruß,
Elko
Kennst du int64_t und uint64_t, oder auch bekannt als long long und unsigned long long?
Include am besten einmal stdint.h
gehört afaik auch zum C-Standard.
Im übrigen müsstest du "einfach" nur hallo[stelle>>3] |= (a << (stelle++)%8) zuweisen, wenn ich dein Problem richtig verstanden habe.
Ersterer Teil greift auf das Element "stelle mod 8" zu, zweiterer schiebt das Bit dann zum Rest.
mfG
Markus