Compartilhar via


<< Operador (Visual Basic)

Executa um deslocamento aritmético à esquerda em um padrão de bits.

result = pattern << amount

Partes

  • result
    Obrigatório.Valor numérico integral.O resultado do deslocamento do padrão de bits.O tipo de dados é o mesmo de pattern.

  • pattern
    Obrigatório.Expressão numérica integral.O padrão de bits para ser deslocado.O tipo de dados deve ser um tipo integral (SByte, Byte, Short, UShort, Integer, UInteger, Long, ou ULong).

  • amount
    Obrigatório.Expressão numérica.O número de bits para deslocar o padrão de bits.O tipo de dados deve ser Integer ou ampliável para Integer.

Comentários

Shifts aritméticos são não circulares, que significa que os bits deslocados de uma extremidade do resultado não são reintroduzidos na outra extremidade.Em um deslocamento aritmético à esquerda, os bits deslocados fora do intervalo de tipo de dados o resultado são descartados, e as posições vagas de bits no lado direito estão definidas como zero.

Para evitar que uma mudança de bits mais do que o resultado pode comportar, o Visual Basic mascara o valor de amount com uma máscara de tamanho que corresponde ao tipo de dados do pattern.O binário AND desses valores é usado para a quantidade de deslocamentos.As máscaras de tamanho são:

Tipo de dados do pattern

Máscara de tamanho (decimal)

Máscara de tamanho (hexadecimal)

SByte, Byte

7

&H00000007

Short, UShort

15

&H0000000F

Integer, UInteger

31

&H0000001F

Long, ULong

63

&H0000003F

Se amount for zero, o valor de result é idêntico ao valor de pattern.Se amount for negativo, ele é interpretado como um valor não assinado e mascarado com a máscara de tamanho apropriada.

Deslocamentos aritméticos nunca geram exceções de overflow (estouro).

ObservaçãoObservação

O operador << pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo daquela classe ou estrutura.Se o seu código utiliza este operador em uma classe ou estrutura, certifique-se de que você compreenda seu comportamento redefinido.Para obter mais informações, consulte Procedimentos de operador (Visual Basic).

Exemplo

O exemplo a seguir usa a << operador para executar cálculos aritméticos deixado turnos nos valores integrais.O resultado sempre tem o mesmo tipo de dados que a expressão que está sendo deslocada.

Dim pattern As Short = 192
' The bit pattern is 0000 0000 1100 0000.
Dim result1, result2, result3, result4, result5 As Short
result1 = pattern << 0
result2 = pattern << 4
result3 = pattern << 9
result4 = pattern << 17
result5 = pattern << -1

Os resultados do exemplo anterior são os seguintes:

  • result1 é 192 (0000 0000 1100 0000).

  • result2 é 3072 (0000 1100 0000 0000).

  • result3 é -32768 (1000 0000 0000 0000).

  • result4 é 384 (0000 0001 1000 0000).

  • result5é 0 (deslocadas 15 casas à esquerda).

O valor de deslocamento para result4 é calculado como 17 AND 15, que é igual a 1.

Consulte também

Referência

Operadores Bit Shift (Visual Basic)

Operadores de atribuição (Visual Basic)

<< (Visual Basic) do operador =

Precedência de operadores em Visual Basic

Operadores listados pela funcionalidade (Visual Basic)

Conceitos

Operadores aritméticos em Visual Basic