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

  • SByte,Byte - 256 possíveis valores integrais

  • 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)

Opção declaração estrito

Outros recursos

Operadores (Visual Basic)