Bits veld

Een bit veld een term die in computer programmering meerdere, logisch, aangrenzende bits, waarbij elk van de reeksen van bits, en enkele bits kunnen worden aangepakt opslaan. Een bit veld wordt meestal gebruikt om integrale types bekende, vaste bit-breedte vertegenwoordigen. Een bekende gebruik van bit-velden is een verzameling bits representeren, en / of reeks van bits, zogenaamde vlaggen. Bijvoorbeeld kan het eerste bit in een bit veld wordt gebruikt om de toestand van een bepaald attribuut geassocieerd met het bit veld te bepalen.

Een bit veld wordt onderscheiden van een bit array dat deze wordt gebruikt om een ​​grote verzameling bits geïndexeerd door integers slaan en vaak groter dan integraal soort ondersteund door de taal. Bits velden, anderzijds, doorgaans past binnen een machinewoord en de aanduiding bits onafhankelijk van hun numerieke index.

Uitvoering

"Een beetje veld is opgezet met een structuur verklaring dat elk veld labels en bepaalt de breedte." In C en C ++ beetje velden kunnen worden gemaakt met behulp van unsigned int, ondertekend int, of _Bool.

U kunt instellen, testen, en verander de bits in het veld met behulp van een masker, bitwise operators, en de juiste lidmaatschap exploitant van een structuur. Oring een waarde zal blijken de bits op als ze niet al op, en laat ze ongewijzigd als ze zijn, bijvoorbeeld bf.flag | = MASK; Om een ​​beetje uit te schakelen, je kan en het is wederzijds, bv BF & gt; vlag & amp; = ~ MASK; En tot slot kunt u een beetje met de XOR-operator, eg.flag ^ = MASK schakelen; Om een ​​beetje te testen kun je een AND uitdrukking te gebruiken, bijv. ? waar onwaar;

Met de waarde van een bepaald bit kan eenvoudig worden gedaan door linker verschuiving 0, n aantal keren, waarbij n de index van het gewenste bit, bijvoorbeeld als u wilt dat de waarde van de 4 bits in een binair getal, kunt u doen: 0 & lt; & lt; 4; die zal opleveren 8, of 1 & lt; & lt; 3; of, 2 & lt; & lt; 2; etc. De voordelen hiervan worden duidelijk bij het itereren door een reeks bits een voor een in een lus, of wanneer nodig de krachten van grote aantallen hoge bit controleren.

Als een taal niet ondersteunt beetje velden, maar ondersteunt beetje manipulatie, kun je iets vergelijkbaars doen. Sinds een beetje veld is gewoon een groep van naburige bits, en is dus een ander type primitieve data, kunt u de bit veld te wisselen voor een primitieve, of een reeks van primitieven. Bijvoorbeeld, met een 32-bits geheel getal weergegeven als 32 aaneengesloten bits, je zou kunnen gebruiken op dezelfde manier als een beetje veld met één verschil; met een bitveld u een bepaalde bit of set bits gebruiken zijn genoemd lid, en een vlag met een waarde tussen 0 en 2 tot de nde macht, waarbij n de lengte van de bits vertegenwoordigen.

Voorbeelden

Waarbij een beetje veld in C:

Voorbeeld van emuleren bit velden met een primitieve en bit operators in C:

(0)
(0)
Commentaren - 0
Geen commentaar

Voeg een reactie

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Tekens over: 3000
captcha