Skip to main content

Wat zijn bitgewijze operators?

In een computerprogramma zijn bitgewijze operators operators voor het manipuleren van bitpatronen in uitdrukkingen.Bitgeise en, of, exclusief of (xor), niet, rechter shift en linker shift zijn gemeenschappelijke bewerkingen.De meeste computerprogrammeertalen omvatten alle zes van deze operators.Ze worden vaak gebruikt voor het instellen, wissen of omdraaien van individuele bits in programma's die computerhardware besturen.Bitgewijze operatoren worden ook vaak gebruikt in gegevenscodering en compressie -algoritmen.

De gemeenschappelijke bitgewijze operators worden meestal symbolisch weergegeven in programmeertalen zoals C, C ++ en Java.Ze worden gebruikt in uitdrukkingen, net zoals rekenkundige operators zoals plus of min -borden zouden zijn.De bitgewijze operator en wordt weergegeven met de ampersand , of met de pijp | en xor met de caret ^.Niet, ook bekend als de complementoperator, wordt aangegeven met een tilde ~ .

De rechter shift-operator gebruikt een dubbele caret die naar rechts wijst .Linkerverschuiving wordt daarentegen aangegeven door een links-pointing dubbele caret <<.Java bevat een andere rechter shift-bewerking, getoond met een rechtspower triple-caret .

Bitgewijze operators passen een logische bewerking toe op elk paar bits in hun operanden.Niet, rechter shift en linker shift hebben slechts één ware operand;De tweede waarde in shift -bewerkingen is de bittelling.Om beter te begrijpen hoe bitgewijze operators werken, kan een persoon zijn operanden visualiseren als binaire cijfers.De complement -operator draait bijvoorbeeld elk stukje van zijn enkele operand naar de tegenovergestelde staat.Een wordt een nul en een nul wordt een.Het complement van de 8-bit binaire waarde 00110101 is 11001010.

<< TEERATOR is twee operanden.Beetje bij beetje wordt een logische en bewerking uitgevoerd met behulp van een overeenkomstig bit uit elke operand.De uitkomst van elke bitbewerking wordt in die bitpositie van het totale resultaat geplaatst.De en operator zal bijvoorbeeld bit 7 van de ene operand verwerken met bit 7 van de andere operand.De uitkomst wordt opgeslagen in bit 7 van het algemene resultaat. In een en operatie moeten beide operandbits er zijn om het resultaat één te hebben, anders is het resultaat nul.Als de 8-bit binaire waarden van de operanden bijvoorbeeld 00110101 en 11110000 zijn, is het resultaat 00110000. Een gemeenschappelijk gebruik van de en operator is om bepaalde bits in het resultaat te nul.Dit wordt gedaan door nullen in die bitposities in een van de operanden te plaatsen. In een OF -bewerking moeten beide operandbits nullen zijn om het resultaat nul te hebben;Anders is het resultaat er één.Een gemeenschappelijk gebruik van de OK -operator is om bepaalde bits van het resultaat op die te stellen.Dit wordt gedaan door die in die bitposities in een van de operanden te plaatsen.Voor de XOR -bewerking is het resultaat nul als beide operandbits nul zijn of als beide operandbits één mdash zijn; anders is het resultaat één. Links shift en rechter shift verplaats de bits in de operand links of rechts door het opgegeven nummer door het opgegeven nummervan bitposities.Een logische rechterverschuiving verplaatst een nul in het meest linkse bit als onderdeel van de verschuiving.Een rekenkundige rechterverschuiving kopieert de meest linkse bit mdash; het teken bit mdash; vóór de verschuiving naar dezelfde positie na de verschuiving.Het originele bit wordt ook verschoven samen met de rest.Beide type linkse verschuiving verplaatst een nul in het meest rechtse bit. Wanneer een operand naar rechts is verschoven, is het meest rechtse bit voordat de verschuiving eenvoudig wordt weggegooid.Evenzo wordt het meest linkse stukje voordat een linkerverschuiving wordt verwijderd.Het wikkelt niet naar het andere uiteinde van de operand. Bitusgewijze shift-bewerkingen zijn taal- en implementatie-afhankelijk.In C en C ++ bijvoorbeeld, en uitvoeren logische verschuivingen als de operand een niet -ondertekend geheel getal is.Als de operand een ondertekend geheel getal is, is het waarschijnlijk dat in plaats daarvan een rekenkundige verschuiving zal worden gedaan.In Java worden alle operanden beschouwd als ondertekend en rekenkundige verschuivingen zijnaltijd uitgevoerd met en <<.De -operator wordt gebruikt voor een logische rechterverschuiving, maar het is nog steeds mogelijk om in plaats daarvan per ongeluk een rekenkundige rechterverschuiving te doen zonder zorgvuldige typecasting.Sommige zijn niet ondertekend.Bitgewijze operatoren en numerieke constanten in het midden van een complexe expressie mogen niet worden geëvalueerd zoals verwacht.Er moet voor worden gezet om de grootte en ondertekende/niet -ondertekende aard van elke hoeveelheid in de uitdrukking te specificeren.Dit kan worden gedaan met zorgvuldige typecasting of tussentijdse opdrachten aan specifieke variabele typen in programmacode.