Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 bits. O tipo de dados é o mesmo que o de pattern.
pattern
Obrigatório Expressão numérica integral. O padrão de bits a ser deslocado. O tipo de dados deve ser um tipo integral (, , , UShortShort, Integer, LongUInteger, , ou ULong). ByteSByte
amount
Obrigatório Expressão numérica. O número de bits para alterar o padrão de bits. O tipo de dados deve ser Integer ou ampliado para Integer.
Observações
Os deslocamentos aritméticos 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 deslocamento aritmético para a esquerda, os bits deslocados além do intervalo do tipo de dados de resultado são descartados e as posições de bits desocupadas à direita são definidas como zero.
Para evitar um deslocamento em mais bits do que o resultado pode conter, o Visual Basic mascara o valor de com uma máscara de amount tamanho que corresponde ao tipo de dados de pattern. O binário E desses valores é usado para o valor do turno. 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 de result é idêntico ao valor de pattern. Se amount for negativo, é tomado como um valor não assinado e mascarado com a máscara de tamanho apropriado.
Mudanças aritméticas nunca geram exceções de estouro.
Observação
O << operador pode estar sobrecarregado, o que significa que uma classe ou estrutura pode redefinir seu comportamento quando um operando tem o tipo dessa classe ou estrutura. Se seu código usa esse operador em tal classe ou estrutura, certifique-se de entender seu comportamento redefinido. Para obter mais informações, consulte Procedimentos do operador.
Exemplo
O exemplo a seguir usa o operador para executar deslocamentos aritméticos para a << esquerda em valores integrais. O resultado sempre tem o mesmo tipo de dados 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).result4é de 384 (0000 0001 1000 0000).result5é 0 (deslocado 15 lugares para a esquerda).
O valor do turno para result4 é calculado como 17 E 15, que é igual a 1.