Co jsou bitové operátory?
V počítačovém programu jsou operátoři bitových novin operátorů pro manipulaci s bitů ve výrazech. Bitwise a, nebo exkluzivní nebo (XOR), ne, pravý posun a levý posun jsou běžné operace. Většina počítačových programovacích jazyků zahrnuje všech šest z těchto operátorů. Často se používají pro nastavení, čištění nebo převrácení jednotlivých bitů v programech, které řídí počítačový hardware. Operátoři biřasů se také často používají v algoritmech šifrování a komprese dat. Používají se ve výrazech, stejně jako aritmetické operátoři, jako jsou Plus nebo mínus značky. Bitwise operátor a je zastoupen ampersand & , nebo s trubkou | a XOR s Caret ^. Ne, také známý jako operátor doplňků, je označen s vlivem ~ .
Pravá operátor Shift používá dvojitý obálka směřující doprava >> . Naproti tomuLevý posun je označen dvojitým pocitem levému bodu <<. Java zahrnuje další operaci pravého posunu, zobrazená s pravým směrováním trojitého boje >>> .
Bitwise Operátoři aplikují logickou operaci na každý pár bitů v jejich operandech. Ne, pravý posun a směna vlevo mají pouze jeden pravý operand; Druhou hodnotou v operacích Shift je počet bitů. Abychom lépe porozuměli tomu, jak operátoři bitové práce fungují, může jednotlivec vizualizovat své operandy jako binární číslice. Například operátor doplňků převrátí každý kousek svého jednorázového operandu do opačného stavu. Jeden se stává nulou a nula se stává. Doplněk 8bitové binární hodnoty 00110101 je 11001010.
a operátor má dva operandy. Bit po kousku je logická a operace prováděna pomocí jednoho odpovídajícího bitů z každého operandu. Výsledek každé bitové operace je umístěn v této bitové poloze celkovéhovýsledek. Například operátor AND AND bude zpracovávat BIT 7 z jednoho operandu s bitem 7 druhého operandu. Výsledek bude uložen v bitu 7 celkového výsledku.
V operaci a operaci musí být oba operand bity, aby byl výsledek jeden, jinak je výsledek nulový. Například, pokud jsou 8bitové binární hodnoty operandů 00110101 a 11110000, bude výsledkem 00110000. Běžným používáním operátoru AND je nulové určité bity ve výsledku. To se provádí umístěním nul do těchto bitových pozic do jednoho z operandů.
V operaci OR, oba operand musí být nuly, aby výsledek byl nulový; Jinak je výsledkem jeden. Běžným používáním operátora OR je nastavit určité bity výsledku na ty. To se provádí umístěním do těchto bitových pozic do jednoho z operandů. Pro operaci XOR je výsledek nulový, pokud jsou oba operandové bity nulové nebo pokud jsou oba operandové bity jeden - výsledek je jeden.
Levý posun and pravý posun posuňte bity v operandu doleva nebo doprava podle zadaného počtu bitových pozic. Logická pravá směna přesune nulu do levého nejzadnějšího bitů v rámci směny. Aritmetický pravý posun zkopíruje bit vlevo - znak kousek - před posunem do stejné polohy po posunu. Původní bit je také posunut přímo spolu se zbytkem. Jeden typ doleva posunu přesune nulu do pravého bitu.
6 Podobně, vlevo nejvíce před likvidací vlevo. Neobalí se na druhý konec operandu.Bitwise Shift Operations jsou jazykové a implementační závislé. Například v C a C ++, >> a << proveďte logické posuny, pokud je operand nepodepsaným celé číslo. Pokud je operand podepsaným celém číslem, je pravděpodobné, že místo toho bude provedeno aritmetický posun. V Javě jsou všechny operandy považovány za podepsané a arithmEtické posuny jsou vždy prováděny s >> a <<. Provozovatel >>> se používá pro logický pravý posun, ale stále je možné místo toho náhodně provést aritmetický pravý posun bez pečlivého typu.
Komplikace mohou nastat také, když mají operandy různé délky bitu nebo když jsou některé podepsány a některé jsou nepodepsány. Bitwise operátory a numerické konstanty uprostřed komplexního výrazu nemusí být vyhodnoceny, jak se očekávalo. Je třeba věnovat pozornost určení velikosti a podepsané/nepodepsané povahy každého množství ve výrazu. To lze provést s pečlivým typem nebo prozatímními přiřazeními ke konkrétním typům proměnných v programovém kódu.