Bit-Felder in C ++




Bit-Feld mit ++, Strukturen in C ++ für AnfängerВ языке С++ есть возможность задавать элементам структур определённое количество памяти в битах. beispielsweise, wenn Sie möchten, eine Datenstruktur zu erstellen, Größe entsprechende Register in jedem Gerät. Die Art des Elements (es wird ein Bit-Feld genannt) такой структуры может быть целочисленное (am häufigsten vom Typ ohne Vorzeichen) oder enumerable (enum).

Syntax-Bit-Feld in der Struktur ist wie folgt definiert:
Bit-Feld mit ++, Strukturen in C ++ für Anfängerbeispielsweise:

Мы определили структуру, в которой переменные будут занимать указанное количество бит. 2 + 2 + 4 es gibt 8 Bit (Wir stellten uns auf Größe in Byte bis). Если в эту структуру дописать еще ohne Vorzeichen kurz fifth : 5; – Es wird bereits beteiligt sein 2 Byte. Во втором байте естественно будет мусор 8 – 5 = 3 Bits, sein nicht beansprucht.

В отличии от Verbände (Union) Größe der Bit-Felder variiert, welche auch immer, wie viele Bits der Programmierer bestellt. Если заказано 7 Bit (sagen die beiden Variablen auf 3 Bits, und ein – 1 Bit), dann nehmen C ++ ein Byte (8 Bit) unter diesen drei Variablen. Wenn der Programmierer bestellen 11 Bit, dann nehmen C ++ zwei Bytes (16 Bit). Und in dem zweiten Byte wird nur verwendet, 5 Bit, und der Rest sind wahrscheinlich zu sein,, als nutzlos Schwanz. Поэтому при описании битовых полей следует учитывать такое “Ausrichtung” In den Bytes. dh. verteilen sie als Variablen, чтоб каждый бит был востребован. Для выравнивания занимаемой памяти можно использовать неименованные битовые поля.

Hier ist ein weiteres kurzes Beispiel, в котором битовые поля отводятся под дату и время для демонстрации этой технологии.

Ergebnis:

Bit-Feld mit ++, Strukturen in C ++ für Anfänger

Wie Sie sehen können, Bit-Felder speichern Datum und Uhrzeit. Занимает эта структура 6 Byte, obwohl es genug für fünf. Und dann gibt es Gründe: сам компилятор может выравнивать отводимую память до четного числа байтов. Zum Beispiel war, wenn wir gebucht 18 Bit, Der Compiler wird uns nicht 3 Byte, und 4, man bedenkt, dass die CPU mit Bytes arbeiten mag, und nicht mit Bits. Wenigstens der Speicher oder Prozessor registriert seine Bits bevorzugt nicht, nämlich Bytes. Nach seiner Bit: x32-Feed 4 Byte, x64 hat 8 Byte. Auch wenn dieser Bytes ist Arbeit nur einer von ihnen, der Rest wird noch aufholen.

Kleine Ergebnis: Битовые поля в Strukturen häufig in Low-Level-Programmierung, когда работа идет со значениями, können keine Bytes zu nehmen, und die einzelnen Bits (da, dass kleine Werte).

Datum
Seite
Bit-Felder in C ++
Wertung
5

Hinterlasse eine Antwort

Platz Code in Tags: <pre class="lang:c ++ dekodieren:true ">DEIN CODE</Vor>