Tipos de Dado de Resultados de Operador
Visual Basic determina o tipo de dado do resultado de uma operação baseada nos tipos de dado dos operandos.Em alguns casos, ele deve ser de um tipo de dado com um intervalo maior do que o dos operandos.
Intervalos de Tipo de Dado
Os intervalos de tipos de dado relevantes, em ordem do menor para o menor, são os seguintes:
Boolean - dois valores possíveis
Short,UShort - 65,536 (6.5...E+4) valores integrais possíveis
Integer,UInteger - 4,294,967,296 (4.2...E+9) valores integrais possíveis
Long,ULong - 18,446,744,073,709,551,615 (1.8...E+19) valores integrais possíveis
Decimal - 1.5...E+29 valores integrais possíveis, intervalo máximo de 7.9...E+28 (valor absoluto)
Single - máximo intervalo 3.4...E+38 (valor absoluto)
Double - máximo intervalo 1.7...E+308 (valor absoluto)
Para obter mais informações, sobre tipos de dado Visual Basic, consulte Resumo de tipo de dados (Visual Basic).
Se um operando obtém Nothing, os operadores aritméticos Visual Basic tratam como zero.
Aritmética Decimal
Observe que o tipo de dado Decimal não é de ponto flutuante nem inteiro.
If either operand of a +, –, *, /, or Mod operation is Decimal and the other is not Single or Double, Visual Basic widens the other operand to Decimal.Ele realiza a operação em Decimal, e o tipo de dado do resultado será Decimal.
Aritmética de Ponto-Flutuante
Visual Basic realiza a maioria da aritmética de ponto flutuante em Double, que é o tipo de dado mais eficiente para tais operações.Entretanto, se um operando for Single e o outro não for Double, Visual Basic realiza a operação em Single.Isso amplia cada operando conforme seja necessário para o tipo de dado apropriado antes da operação, e o resultado tem esse tipo de dado.
Operadores / e ^
The / o operador está definido somente para o Decimal, Único, and Duplo tipos de dados.Visual Basic amplia cada operando sistema autônomo necessários para o tipo de dados apropriado antes da operação e o resultado h sistema autônomo esse tipo de dados.
A tabela seguinte mostra tipos de dado de resultado para o operador /.Observe que essa tabela é simétrica; para uma dada combinação de tipos de dado de operandos, o tipo de dado do resultado é o mesmo, independemente da ordem dos operandos.
Decimal |
Single |
Double |
Qualquer tipo inteiro |
|
Decimal |
Decimal |
Single |
Double |
Double |
Single |
Single |
Single |
Double |
Double |
Double |
Double |
Double |
Double |
Double |
Qualquer tipo inteiro |
Double |
Double |
Double |
Double |
The ^ o operador está definido somente para o Double tipo de dados. Visual Basic amplia cada operando sistema autônomo necessário Double antes da operação e os dados resultantes tipo é sempre Double.
Aritmética de Inteiros
O tipo de dados do resultado de uma operação com inteiro depende do tipo de dado dos operandos.Em geral, Visual Basic usa as seguintes políticas para determinar o tipo de dado do resultado:
Se ambos os operandos de um operador binário têm o mesmo tipo de dado, o resultado terá esse tipo de dado.Uma exceção é Boolean, que é forçado a Short.
Se um operador sem-sinal participar em uma operação com sinal, o resultado será com sinal e com pelo menos o tamanho do intervalo de cada um dos operandos.
Por outro lado, o resultado geralmente toma do maior dos tipos de dado dos operandos.
Observe que o tipo de dado do resultado pode não ser o mesmo de ambos os tipos de dado dos operandos.
Observação: |
---|
O tipo de dado do resultado não é sempre grande o suficiente para armazenar todos os valores possíveis resultantes da operação.Uma OverflowException exceção pode ocorrer se o valor é muito grande para o tipo de dados do resultado. |
Operadores unários + e - .
The following table shows the result data types for the two unary operators, + and –.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Unário + |
Short |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Unário – |
Short |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Decimal |
Operadores << e >>
A tabela a seguir mostra o resultado tipos de dados para os dois operadores bit deslocar, << e >>. Visual Basic trata cada operador de deslocamento de bits sistema autônomo um operador unário no seu operando esquerdo (o padrão de bit deslocamento).
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
<<, >> |
Short |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Se o operador esquerdo for Decimal,Single,Double, ou String, Visual Basic tenta convertê-lo para Long antes da operação, e o tipo de dado do resultado será Long.O operador direito (o número de posições de bit a deslocar) deve ser Integer ou um tipo que amplie para Integer.NUMBER
Operadores Binários +,-,*, e Mod
The following table shows the result data types for the binary + and – operators and the * and Mod operators.Observe que essa tabela é simétrica; para uma dada combinação de tipos de dado de operandos, o tipo de dado do resultado é o mesmo, independemente da ordem dos operandos.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Short |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Decimal |
SByte |
SByte |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Decimal |
Byte |
Short |
Short |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Short |
Short |
Short |
Short |
Short |
Integer |
Integer |
Long |
Long |
Decimal |
UShort |
Integer |
Integer |
UShort |
Integer |
UShort |
Integer |
UInteger |
Long |
ULong |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Long |
Long |
Decimal |
UInteger |
Long |
Long |
UInteger |
Long |
UInteger |
Long |
UInteger |
Long |
ULong |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Decimal |
ULong |
Decimal |
Decimal |
ULong |
Decimal |
ULong |
Decimal |
ULong |
Decimal |
ULong |
\ Operador
A tabela seguinte mostra tipos de dado de resultado para o operador \.Observe que essa tabela é simétrica; para uma dada combinação de tipos de dado de operandos, o tipo de dado do resultado é o mesmo, independemente da ordem dos operandos.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Short |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
SByte |
SByte |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
Byte |
Short |
Short |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Short |
Short |
Short |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
UShort |
Integer |
Integer |
UShort |
Integer |
UShort |
Integer |
UInteger |
Long |
ULong |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Long |
Long |
Long |
UInteger |
Long |
Long |
UInteger |
Long |
UInteger |
Long |
UInteger |
Long |
ULong |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
ULong |
Long |
Long |
ULong |
Long |
ULong |
Long |
ULong |
Long |
ULong |
Se ambos os operandos de \ forem Decimal,Single, ou Double, Visual Basic tenta convertê-los para Long antes de realizar a operação, e o tipo de dado do resultado será Long.
Comparações Relacionais e Bit a Bit
O tipo de dados do resultado de uma operação relacional (=, <>, <, >, <=, >=) é sempre BooleanTipo de dados booleanos (Visual Basic). O mesmo é válido para operações lógicas (And,AndAlso,Not, Or,OrElse,Xor) em operandos Boolean.
O tipo de dados do resultado de uma operação lógica bit a bit com inteiro depende do tipo de dado dos operandos.Observe que AndAlso e OrElse são definidos somente para Boolean, e Visual Basic converte cada operando conforme necessário para Boolean antes de realizar a operação.
= <>, <, >, < =, e > = operadores
Se ambos os operandos forem Boolean, Visual Basic considera True como menos que False.Se um tipo número é comparado com uma String, Visual Basic tenta converter a String para Double antes da operação.Um operando Char ou Date pode ser comparado somente com outro operando do mesmo tipo.O tipo de dado do resultado é sempre Boolean.
Operador Not bit a bit
A tabela seguinte mostra tipos de dado de resultado para o operador bit a bit Not.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Not |
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Se o operando Decimal,Single,Double, ou String, Visual Basic tenta convertê-lo para Long antes da operação, e o tipo de dado do resultado será Long.
Operadores Bit a Bit, And, or e Xor
A tabela seguinte mostra tipos de dado de resultado para os operadores bit a bit And ,Or. e Xor.Observe que essa tabela é simétrica; para uma dada combinação de tipos de dado de operandos, o tipo de dado do resultado é o mesmo, independemente da ordem dos operandos.
Boolean |
SByte |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
|
Boolean |
Boolean |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
SByte |
SByte |
SByte |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
Byte |
Short |
Short |
Byte |
Short |
UShort |
Integer |
UInteger |
Long |
ULong |
Short |
Short |
Short |
Short |
Short |
Integer |
Integer |
Long |
Long |
Long |
UShort |
Integer |
Integer |
UShort |
Integer |
UShort |
Integer |
UInteger |
Long |
ULong |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Integer |
Long |
Long |
Long |
UInteger |
Long |
Long |
UInteger |
Long |
UInteger |
Long |
UInteger |
Long |
ULong |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
Long |
ULong |
Long |
Long |
ULong |
Long |
ULong |
Long |
ULong |
Long |
ULong |
Se um operando for Decimal,Single,Double, ou String, Visual Basic tenta convertê-lo para Long antes da operação, e o tipo de dado do resultado será o mesmo, como se o operando já fosse Long.
Operadores Mistos
The & o operador está definido somente para concatenação de String operandos. Visual Basic Converte cada operando conforme necessário para String antes da operação e sistema autônomo dados resultantes tipo é sempre String. Para os propósitos do operador &, todas as conversões para String são considerandas abrangentes, mesmo se Option Strict for On.
Os operadores Is e IsNot necessitam que ambos os operandos sejam do tipo de referência.A expressão TypeOf...Is necessita que o primeiro operando seja de tipo de referência e o segundo seja o nome de um tipo de dado.Em todos esses casos, o tipo de dado do resultado será Boolean.
The Like o operador está definido somente para correspondência de padrões de String operandos. Visual Basic tenta converter cada operando conforme necessário para String antes da operação. O tipo de dado do resultado é sempre Boolean.
Consulte também
Conceitos
Operadores e expressões em Visual Basic
Operadores aritméticos em Visual Basic
Operadores de Comparação em Visual Basic
Referência
Resumo de tipo de dados (Visual Basic)
Precedência de operadores no Visual Basic
Operadores listados por Funcionalidade
Operadores Aritméticos (Visual Basic)
Operadores de comparação (Visual Basic)