Sdílet prostřednictvím


Operátory posunutí: >> a <<

expression << expression
expression >> expression

Poznámky

Bitové operátory posunutí jsou následující:

  • Pravý shift (>>)

  • Levý shift (<<)

Typy integrálů musí být oba operandy operátory posunutí.Propagace nedílnou provedeny podle pravidel popsaných v Propagace nedílnou.Typ výsledku je stejné jako typ převedených levý operand.Hodnota výrazu pravý shift x >> y je x / 2ya hodnota výrazu levý shift x << y is x * 2y.

Výsledkem nedefinovaný pravý operand shift výraz je záporný nebo pravý operand je větší než nebo rovno počtu bitů (převedených) levý operand.Žádné shift operace Pokud pravý operand je nula (0).

Operátor levý shift způsobí, že vzorek bitů prvního operandu počtu bitů určeného druhým operandem posunutí vlevo.Uprázdnili shift operace bity jsou vyplněny nulovými hodnotami.To je logický posun namísto operace se shift a natočit.

Operátor pravý shift způsobí, že vzorek bitů prvního operandu počtu bitů určeného druhým operandem posunutí vpravo.Uprázdnili shift operace bity jsou vyplněny nulovými hodnotami pro nepodepsané množství.Podepsané množství rozšíří se do pozice vacated bit znaménkový.Shift je logický posun pokud levý operand je bez znaménka množství; jinak je aritmetický shift.

Konkrétní společnosti Microsoft

Výsledkem pravý shift podepsané záporné množství je závislé na provedení.Přestože MicrosoftC++ šíří většinu významný bit vyplnit vacated bit pozice není zaručeno, že jiné implementace bude také provést.

Příklad

// expre_Shift_Operators.cpp
// compile with: /EHsc
// Demonstrate shift operators
#include <iostream>
using namespace std;

int main() {
   cout   << "5 times 2 is " << (5 << 1) << endl
         << "20 divided by 4 is " << (20 >> 2) << endl;
}

Výsledek

  
  

Viz také

Referenční dokumentace

Výrazy s binární operátory

Operátory C++

Přednost a asociativita operátorů

Koncepty

Bitové operátory posunutí