Partager via


Types de données des résultats d’opérateur (Visual Basic)

Visual Basic détermine le type de données de résultat d’une opération en fonction des types de données des opérandes. Dans certains cas, il peut s’agir d’un type de données avec une plage supérieure à celle de l’un des opérandes.

Plages de types de données

Les plages des types de données pertinents, dans l’ordre le plus petit au plus grand, 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

  • Entier, 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+19) valeurs intégrales possibles

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

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

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

Pour plus d’informations sur les types de données Visual Basic, consultez Types de données.

Si un opérande prend la valeur Nothing, les opérateurs arithmétiques Visual Basic le traitent comme zéro.

Arithmétique décimale

Notez que le type de données décimal n’est ni à virgule flottante ni à entier.

Si l’un des opérandes d’un +opérande , , *ou Mod/de l’opération est Decimal et que l’autre n’est pas Single ou Double, Visual Basic élargit l’autre opérande à Decimal. Il effectue l’opération dans Decimal, et le type de données de résultat est Decimal.

Floating-Point arithmétique

Visual Basic effectue la plupart des arithmétiques à virgule flottante en Double, qui est le type de données le plus efficace pour ces opérations. Toutefois, si un opérande est Single et que l’autre n’est pas Double, Visual Basic effectue l’opération dans Single. Il élargit chaque opérande si nécessaire au type de données approprié avant l’opération, et le résultat a ce 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 élargit chaque opérande si nécessaire au type de données approprié avant l’opération, et le résultat a ce type de données.

Le tableau suivant montre les types de données de résultat pour l’opérateur / . Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, 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 entier
Decimal Décimal Célibataire Double Décimal
Single Célibataire Célibataire Double Célibataire
Double Double Double Double Double
Tout type entier Décimal Célibataire Double Double

L’opérateur ^ est défini uniquement pour le type de Double données. Visual Basic élargit chaque opérande selon les besoins avant Double l’opération, et le type de données de résultat est toujours Double.

Entier arithmétique

Le type de données de résultat d’une opération entière 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 a ce type de données. Une exception est Boolean, qui est forcée à Short.

  • Si un opérande non signé participe à un opérande signé, le résultat a un type signé avec au moins autant de plage qu’un opérande.

  • Sinon, le résultat a généralement la plus grande des deux types de données d’opérande.

Notez que le type de données de résultat peut ne pas être identique à l’un ou l’autre type de données d’opérande.

Remarque

Le type de données de résultat n’est pas toujours suffisamment grand pour contenir toutes les valeurs possibles résultant de l’opération. Une OverflowException exception 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 + Court SByte Byte Court UShort Nombre entier UInteger Long ULong
Unaire Court SByte Court Court Nombre entier Nombre entier Long Long Décimal

<< et >> opérateurs

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 en tant qu’opérateur unaire sur son opérande gauche (le modèle de bits à décaler).

Boolean SByte Byte Short UShort Integer UInteger Long ULong
<<, >> Court SByte Byte Court UShort Nombre entier UInteger Long ULong

Si l’opérande gauche est Decimal, Singleou DoubleString, Visual Basic tente de le Long convertir avant l’opération, et le type de données de résultat est Long. L’opérande droit (nombre de positions de bits à décaler) doit être Integer ou un type qui s’élargit à Integer.

Opérateurs binaires +, –, *et Mod

Le tableau suivant présente les types de données de résultat pour les opérateurs et les opérateurs binaires + et Mod les * opérateurs. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, 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 Court SByte Court Court Nombre entier Nombre entier Long Long Décimal
SByte SByte SByte Court Court Nombre entier Nombre entier Long Long Décimal
Byte Court Court Byte Court UShort Nombre entier UInteger Long ULong
Short Court Court Court Court Nombre entier Nombre entier Long Long Décimal
UShort Nombre entier Nombre entier UShort Nombre entier UShort Nombre entier UInteger Long ULong
Integer Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier Long Long Décimal
UInteger Long Long UInteger Long UInteger Long UInteger Long ULong
Long Long Long Long Long Long Long Long Long Décimal
ULong Décimal Décimal ULong Décimal ULong Décimal ULong Décimal ULong

\Opérateur

Le tableau suivant montre les types de données de résultat pour l’opérateur \ . Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, 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 Court SByte Court Court Nombre entier Nombre entier Long Long Long
SByte SByte SByte Court Court Nombre entier Nombre entier Long Long Long
Byte Court Court Byte Court UShort Nombre entier UInteger Long ULong
Short Court Court Court Court Nombre entier Nombre entier Long Long Long
UShort Nombre entier Nombre entier UShort Nombre entier UShort Nombre entier UInteger Long ULong
Integer Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier 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 tente de le convertir en Long avant l’opération, et le type de données de résultat est Long.

Comparaisons relationnelles et au niveau du bit

Le type de données de résultat d’une opération relationnelle (=, , <>, <>, <=, ) >=est toujours Booleande type de données booléen. Il en va de même pour les opérations logiques (And, , AndAlsoNot, OrOrElse, , Xor) sur Boolean les opérandes.

Le type de données de résultat d’une opération logique au niveau du bit dépend des types de données des opérandes. Notez que AndAlso et OrElse sont définis uniquement pour Boolean, et Visual Basic convertit chaque opérande selon les besoins Boolean avant d’effectuer l’opération.

=, , <<>, , <>= >opérateurs

Si les deux opérandes sont Boolean, Visual Basic considère True qu’il est inférieur Falseà . Si un type numérique est comparé à un String, Visual Basic tente de convertir celui-ci DoubleString avant l’opération. Un Char ou Date un opérande ne peut être comparé qu’à un autre opérande du même type de données. Le type de données de résultat est toujours Boolean.

Opérateur bitwise Not

Le tableau suivant montre les types de données de résultat pour l’opérateur au niveau Not du bit.

Boolean SByte Byte Short UShort Integer UInteger Long ULong
Not Booléen SByte Byte Court UShort Nombre entier UInteger Long ULong

Si l’opérande est Decimal, Singleou DoubleString, Visual Basic tente de le Long convertir avant l’opération, et le type de données de résultat est Long.

Opérateurs bitwise And, Or et Xor

Le tableau suivant présente les types de données de résultat pour les opérateurs et OrXor les opérateurs au niveau Anddu bit. Notez que cette table est symétrique ; pour une combinaison donnée de types de données d’opérande, 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 Booléen SByte Court Court Nombre entier Nombre entier Long Long Long
SByte SByte SByte Court Court Nombre entier Nombre entier Long Long Long
Byte Court Court Byte Court UShort Nombre entier UInteger Long ULong
Short Court Court Court Court Nombre entier Nombre entier Long Long Long
UShort Nombre entier Nombre entier UShort Nombre entier UShort Nombre entier UInteger Long ULong
Integer Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier Nombre entier 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, Singleou DoubleString, Visual Basic tente de le Long convertir avant l’opération, et le type de données de résultat est le même que si cet opérande avait déjà été .Long

Opérateurs divers

L’opérateur & est défini uniquement pour la concaténation des String opérandes. Visual Basic convertit chaque opérande selon les besoins avant String 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 à String considérer comme étant étendues, même si c’est Option Strict le cas On.

Les Is opérateurs et IsNot les opérateurs nécessitent que les deux opérandes soient d’un type référence. L’expression TypeOf...Is nécessite que le premier opérande soit d’un type référence et que le deuxième opérande soit 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 la correspondance de modèles d’opérandes String . Visual Basic tente de convertir chaque opérande selon les besoins avant String l’opération. Le type de données de résultat est toujours Boolean.

Voir aussi