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
Přednost a asociativita operátorů