Sagt C ++ etwas zur Bit-Sortierung? Ich arbeite vor allem an Protokoll-Paket-Layouts, und ich zweifle, ob es eine übertragbare Möglichkeit gibt, eine bestimmte Zahl in Bits 5,6,7 zu schreiben, wobei Bit 5 das "wichtigste" ist.
Meine Fragen:
bitset<8>().set(7).to_ulong()
immer gleich 1? Ab 20.5 / 3 (ISO / IEC 14882: 2011)
Beim Konvertieren zwischen einem Objekt des Klassenbitsatzes und eines Wertes eines ganzzahligen Typs entspricht die Bitposition pos dem Bitwert 1 & lt; & lt; pos.
Das heißt, bitset<8>().set(7).to_ulong()
ist garantiert (1 << 7) == 128
.
Bitset führt keine Serialisierung durch, Sie müssen es also nicht (müssen). Verwenden Sie Serialisierung / Deserialisierung.
ist bitset & lt; 8 & gt; (). set (7) .to_ulong () immer gleich 1
Nein, nicht auf meinem Computer (siehe unten).
Ich erwarte jedoch, dass sich die Iostream-Operatoren portabel verhalten:
%Vor%Druckt
%Vor%Wenn die Frage ist, ob Sie die Endianz der Plattform beim Senden binärer Objekte über das Netzwerk gerne ignorieren, ist die Antwort, dass Sie nicht können. Wenn die Frage ist, ob derselbe Code, der auf zwei verschiedenen Plattformen kompiliert wurde, die gleichen Ergebnisse liefert, lautet die Antwort ja.
Tags und Links c++ bitset portability