>>

Descrição

O operador de deslocamento à direita >> faz os bits do operando à esquerda do operador serem deslocados à direita pelo número de posições especificadas pelo operando à direita do operador.

Sintaxe

variável << numero_de_bits;

Parâmetros

  • Variável`: Tipos de dados permitidos: byte, int, long
  • numero_de_bits: um número menor ou igual 32. Tipos de dados permitidos: int

Código de Exemplo

int a = 40; // binário: 0000000000101000 int b = a >> 3; // binário: 0000000000000101, ou 5 em decimal

※ Notas e Advertências:

Quando você desloca x à direita por y bits (x >> y), e o bit mais significativo em x é 1, o comportamento depende do tipo de dado de x. Se x é do tipo int, o bit mais significativo é o bit de sinal, determinando se x é negativo ou não, como pode ser visto com detalhes na página do tipo de dado int. Nesse caso, o bit de sinal é copiado para os bits menos significativos quando o valor é deslocado, por razões históricas:

int x = -16; // binário: 1111111111110000 int y = 3; int resultado = x >> y; // binário: 1111111111111110

Esse comportamento, chamdo extensão do sinal, é frequentemente indesejável. Em vez disso, você pode quere que zeros sejam deslocados da esquerda. Acontece que as regras do deslocamento à direita são diferentes para expressões unsigned int, estão você pode usar casting para impedir que uns sejam copiados da esquerda:

int x = -16; // binário: 1111111111110000 int y = 3; int resultado = (unsigned int)x >> y; // binário: 0001111111111110

Se você for cuidadoso para evitar a extensão do sinal, você pode usar o operador de deslocamento à direita >> como uma forma de dividir por potências de 2. Por exemplo:

int x = 1000; int y = x >> 3; // divisão inteira de 1000 por 8, resultando em y = 125.

Ver Também

Exemplo : Tutorial BitMath (Em Inglês)

Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.