Compartilhar via


Tipos de dados de resultados de operador (Visual Basic)

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 do 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.

ms235255.collapse_all(pt-br,VS.110).gifOperadores / e ^

O / operador está definido apenas para o Decimal, único, e Double tipos de dados.Visual Basicamplia a cada operando conforme necessário para o tipo de dados apropriado antes que a operação e o resultado tenha 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

Simples

Double

Decimal

Single

Simples

Simples

Double

Simples

Double

Double

Double

Double

Double

Qualquer tipo inteiro

Decimal

Simples

Double

Double

O ^ o operador está definido somente para o Double tipo de dados.Visual Basicamplia a cada operando conforme necessário para Double antes da operação e o resultado é do tipo de dados 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çãoObservaçã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 exceção OverflowException pode ocorrer se o valor for muito grande para o tipo de dado do resultado.

ms235255.collapse_all(pt-br,VS.110).gifOperadores unários + e - .

A tabela a seguir mostra o resultado tipos de dados para os dois operadores unários, + e –.

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

ms235255.collapse_all(pt-br,VS.110).gifOperadores << e >>

A tabela a seguir mostra o resultado tipos de dados para os dois operadores bit shift, << e >>.Visual Basictrata cada operador de deslocamento de bits como um operador unário em seu operando esquerdo (o padrão de bits 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

ms235255.collapse_all(pt-br,VS.110).gifOperadores Binários +,-,*, e Mod

A tabela a seguir mostra o resultado de tipos de dados para o binário + e – operadores e a * e Mod operadores.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

ms235255.collapse_all(pt-br,VS.110).gif\ O 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

The result data type of a relational operation (=, <>, <, >, <=, >=) is always BooleanTipo de dados Boolean (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.

ms235255.collapse_all(pt-br,VS.110).gif=, < >, <>,, < =, 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.

ms235255.collapse_all(pt-br,VS.110).gifOperador 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.

ms235255.collapse_all(pt-br,VS.110).gifOperadores 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

O & operador está definido apenas para concatenação de String operandos.Visual BasicConverte cada operando conforme necessário para String antes da operação e o resultado é do tipo de dados 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.

O Like operador está definido apenas para correspondência de padrões de String operandos.Visual Basictenta converter cada operando conforme necessário para String antes da operação.O tipo de dado do resultado é sempre Boolean.

Consulte também

Referência

Resumo do tipo de dados (Visual Basic)

Precedência de operadores em Visual Basic

Operadores listados pela funcionalidade (Visual Basic)

Operadores aritméticos (Visual Basic)

Operadores de comparação (Visual Basic)

Opção Strict Statement

Conceitos

Operadores e expressões em Visual Basic

Operadores aritméticos em Visual Basic

Operadores de comparação em Visual Basic

Outros recursos

Operadores (Visual Basic)