Types de données des résultats d'opérateur

Mise à jour : novembre 2007

Visual Basic détermine le type de données de résultat d'une opération à partir des types de données des opérandes. Dans certains cas, il peut s'agir d'un type de données disposant d'une plage plus grande que celle d'un opérande.

Plages des types de données

Les plages des types de données pertinents, dans l'ordre croissant de taille, sont les suivantes :

  • Boolean — deux valeurs possibles

  • SByte, Byte — 256 valeurs intégrales possibles

  • Short, UShort — 65 536 (6,5... E+4) valeurs intégrales possibles

  • Integer, UInteger — 4 294 967 296 (4,2... E+9) valeurs intégrales possibles

  • Long, ULong — 18 446 744 073 709 551 615 (1,8... E+9) valeurs intégrales possibles

  • Decimal — 1,5... E+29 valeurs intégrales possibles, la plage maximale est 7,9... E+28 (valeur absolue)

  • Single — la plage maximale est 3,4 ... E+38 (valeur absolue)

  • Double — la plage maximale est 1,7 ... E+308 (valeur absolue)

Pour plus d'informations sur les types de données Visual Basic, consultez Liste des types de données (Visual Basic).

Si un opérande prend la valeur Nothing, les opérateurs arithmétiques Visual Basic la considèrent comme étant égale à zéro.

Arithmétique décimale

Notez que le type de données Decimal n'est ni à virgule flottante, ni entier.

Si un opérande d'une opération +, –, *, /, ou Mod est de type Decimal et que l'autre n'est pas Single ou Double, Visual Basic étend l'autre opérande à Decimal. Il effectue l'opération en Decimal et le type de données de résultat est Decimal.

Arithmétique à virgule flottante

Visual Basic exécute la plupart des opérations arithmétiques à virgule flottante en Double, qui est le type de données le plus efficace pour ce genre d'opérations. Toutefois, si un opérande est Single et que l'autre n'est pas Double, Visual Basic effectue l'opération en Single. Il étend si nécessaire chaque opérande au type de données approprié avant l'opération, et le résultat est du même type de données.

Opérateurs / et ^

L'opérateur / est défini uniquement pour les types de données Decimal, Single et Double. Visual Basic étend si nécessaire chaque opérande au type de données approprié avant l'opération, et le résultat est du même type de données.

Le tableau suivant présente les types de données de résultat pour l'opérateur /. Notez que ce tableau est symétrique ; pour une combinaison de types de données d'opérande spécifiée, le type de données de résultat est le même, quel que soit l'ordre des opérandes.

Decimal

Single

Double

Tout type d'entier

Decimal

Decimal

Single

Double

Double

Single

Single

Single

Double

Double

Double

Double

Double

Double

Double

Tout type d'entier

Double

Double

Double

Double

L'opérateur ^ est défini uniquement pour le type de données Double. Visual Basic étend si nécessaire chaque opérande à Double avant l'opération, et le type de données de résultat est toujours Double.

Arithmétique sur les entiers

Le type de données de résultat d'une opération sur des entiers dépend des types de données des opérandes. En général, Visual Basic utilise les stratégies suivantes pour déterminer le type de données de résultat :

  • Si les deux opérandes d'un opérateur binaire ont le même type de données, le résultat sera également de ce type de données. Boolean fait exception ; il est forcé en Short.

  • Si un opérande non signé est associé à un opérande signé, le résultat est d'un type signé assorti d'une plage au moins aussi grande que l'un des opérandes.

  • Sinon, le résultat prend généralement le plus grand des deux types de données d'opérande.

Notez que le type de données de résultat peut ne pas être le même que celui des opérandes.

Remarque :

En effet, le type de données de résultat n'est pas toujours assez grand pour contenir toutes les valeurs possibles résultant de l'opération. Une exception OverflowException peut se produire si la valeur est trop grande pour le type de données de résultat.

Opérateurs unaires + et -

Le tableau suivant présente les types de données de résultat pour les deux opérateurs unaires, + et –.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

+ unaire

Short

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

– unaire

Short

SByte

Short

Short

Integer

Integer

Long

Long

Decimal

Opérateurs << et >>

Le tableau suivant présente les types de données de résultat pour les deux opérateurs de décalage de bits, << et >>. Visual Basic traite chaque opérateur de décalage de bits comme un opérateur unaire sur son opérande gauche (modèle binaire à décaler).

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

<<, >>

Short

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Si l'opérande gauche est de type Decimal, Single, Double ou String, Visual Basic essaie de le convertir en Long avant l'opération, et le type de données de résultat est Long. L'opérande droit (le nombre de positions binaires à décaler) doit être Integer ou d'un type qui s'étend à Integer.

Opérateurs binaires + et –, et opérateurs * et Mod

Le tableau suivant présente les types de données de résultat pour les opérateurs binaires + et – et les opérateurs * et Mod. Notez que ce tableau est symétrique ; pour une combinaison de types de données d'opérande spécifiée, le type de données de résultat est le même, quel que soit l'ordre des opérandes.

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

\, opérateur

Le tableau suivant présente les types de données de résultat pour l'opérateur \. Notez que ce tableau est symétrique ; pour une combinaison de types de données d'opérande spécifiée, le type de données de résultat est le même, quel que soit l'ordre des opérandes.

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

Si l'un des opérandes de l'opérateur \ est Decimal, Single ou Double, Visual Basic essaie de le convertir en Long avant l'opération, et le type de données de résultat est Long.

Comparaison de bits et comparaison relationnelle

Le type de données de résultat d'une opération relationnelle (=, <>, <, >, <=, >=) est toujours BooleanBoolean, type de données (Visual Basic). Il en va de même pour les opérations logiques (And, AndAlso, Not, Or, OrElse, Xor) sur les opérandes Boolean.

Le type de données de résultat d'une opération logique de bits dépend des types de données des opérandes. Notez que AndAlso et OrElse sont définis uniquement pour Boolean et que Visual Basic convertit si nécessaire chaque opérande en Boolean avant d'effectuer l'opération.

Opérateurs =, <>, <, >, <= et >=

Si les deux opérandes sont Boolean, Visual Basic considère que la valeur True est inférieure à False. Si un type numérique est comparé à un String, Visual Basic essaie de convertir le String en Double avant l'opération. Une comparaison avec un opérande de type Char ou Date ne peut être établie qu'avec un autre opérande du même type de données. Le type de données de résultat est toujours Boolean.

Opérateur de bits NOT

Le tableau suivant présente les types de données de résultat pour l'opérateur de bits Not.

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Not

Boolean

SByte

Byte

Short

UShort

Integer

UInteger

Long

ULong

Si l'opérande est de type Decimal, Single, Double ou String, Visual Basic essaie de le convertir en Long avant l'opération, et le type de données de résultat est Long.

Opérateurs de bits AND, OR et XOR

Le tableau suivant présente les types de données de résultat pour les opérateurs de bits And, Or et Xor. Notez que ce tableau est symétrique ; pour une combinaison de types de données d'opérande spécifiée, le type de données de résultat est le même, quel que soit l'ordre des opérandes.

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

Si un opérande est Decimal, Single, Double ou String, Visual Basic essaie de le convertir en Long avant l'opération, et le type de données de résultat est le même que si cet opérande était déjà de type Long.

Opérateurs divers

L'opérateur & est défini uniquement pour la concaténation d'opérandes String. Visual Basic convertit chaque opérande si nécessaire en String avant l'opération, et le type de données de résultat est toujours String. Pour les besoins de l'opérateur &, toutes les conversions en String sont considérées comme étant étendues, même si Option Strict est On.

Les opérateurs Is et IsNot exigent que les deux opérandes soient d'un type référence. L'expression TypeOf...Is exige que le premier opérande soit d'un type référence et que le second opérande représente le nom d'un type de données. Dans tous ces cas, le type de données de résultat est Boolean.

L'opérateur Like est défini uniquement pour les critères spéciaux d'opérandes String. Visual Basic essaie si nécessaire de convertir chaque opérande en String avant l'opération. Le type de données de résultat est toujours Boolean.

Voir aussi

Concepts

Opérateurs et expressions en Visual Basic

Opérateurs arithmétiques en Visual Basic

Opérateurs de comparaison en Visual Basic

Référence

Liste des types de données (Visual Basic)

Priorité des opérateurs en Visual Basic

Opérateurs répertoriés par fonctionnalité

Opérateurs arithmétiques (Visual Basic)

Opérateurs de comparaison (Visual Basic)

Option Strict, instruction

Autres ressources

Opérateurs (Visual Basic)