Compartilhar via


<< Operador (Visual Basic)

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

Sintaxe

result = pattern << amount  

Partes

result
Obrigatório Valor numérico integral. O resultado da mudança do padrão de bit. O tipo de dados é o mesmo que o de pattern.

pattern
Obrigatório Expressão numérica integral. O padrão de bit a ser deslocado. O tipo de dados deve ser um tipo integral (SByte, , Byte, Short, UShort, Integer, UInteger, ou LongULong).

amount
Obrigatório Expressão numérica. O número de bits a serem deslocados para o padrão de bits. O tipo de dados deve ser Integer ou ampliado para Integer.

Observações

As mudanças aritméticas não são circulares, o que significa que os bits deslocados de uma extremidade do resultado não são reintroduzidos na outra extremidade. Em um turno aritmético à esquerda, os bits deslocados para além do intervalo do tipo de dados de resultado são descartados e as posições de bit desocupadas à direita são definidas como zero.

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

Tipo de dados de 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 será result idêntico ao valor de pattern. Se amount for negativo, ele será usado como um valor não assinado e mascarado com a máscara de tamanho apropriada.

As mudanças aritméticas nunca geram exceções de estouro.

Observação

O << operador pode ser sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se o código usar esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos de Operador.

Exemplo

O exemplo a seguir usa o << operador para executar turnos aritméticos à esquerda em valores integrais. O resultado sempre tem o mesmo tipo de dados que o da 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 0000).

  • result4 é 384 (0000 0001 1000 0000).

  • result5 é 0 (deslocado 15 lugares para a esquerda).

O valor da mudança é result4 calculado como 17 E 15, o que equivale a 1.

Consulte também