Entrainement
Module
Choisir le type de données correct dans votre code C# - Training
Choisissez le type de données approprié pour votre code à partir de plusieurs types de base utilisés en C#.
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
.NET fournit une gamme de primitives numériques entières et à virgule flottante ainsi que :
.NET prend en charge les types d’entiers signés et non signés de 8 bits, 16 bits, 32 bits, 64 bits et 128 bits, qui sont répertoriés dans les tableaux suivants.
Types d’entier signé
Type | Taille (en octets) | Valeur minimale | Valeur maximale |
---|---|---|---|
System.Int16 | 2 | -32,768 | 32 767 |
System.Int32 | 4 | -2,147,483,648 | 2 147 483 647 |
System.Int64 | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
System.Int128 | 16 | −170,141,183,460,469,231,731,687,303,715,884,105,728 | 170,141,183,460,469,231,731,687,303,715,884,105,727 |
System.SByte | 1 | -128 | 127 |
System.IntPtr (dans les processus 32 bits) | 4 | -2,147,483,648 | 2 147 483 647 |
System.IntPtr (dans les processus 64 bits) | 8 | -9,223,372,036,854,775,808 | 9,223,372,036,854,775,807 |
Types d’entier non signé
Type | Taille (en octets) | Valeur minimale | Valeur maximale |
---|---|---|---|
System.Byte | 1 | 0 | 255 |
System.UInt16 | 2 | 0 | 65 535 |
System.UInt32 | 4 | 0 | 4,294,967,295 |
System.UInt64 | 8 | 0 | 18 446 744 073 709 551 615 |
System.UInt128 | 16 | 0 | 340,282,366,920,938,463,463,374,607,431,768,211,455 |
System.UIntPtr (dans les processus 32 bits) | 4 | 0 | 4,294,967,295 |
System.UIntPtr (dans les processus 64 bits) | 8 | 0 | 18 446 744 073 709 551 615 |
Chaque type d’entier prend en charge un ensemble d’opérateurs arithmétiques standard. La classe System.Math fournit des méthodes pour un ensemble plus large de fonctions mathématiques.
Vous pouvez également travailler avec les bits individuels d'une valeur d'entier en utilisant la classe System.BitConverter.
Notes
Les types d’entier non signés ne sont pas conformes à CLS. Pour plus d’informations, consultez Indépendance du langage et composants indépendants du langage.
La structure System.Numerics.BigInteger est un type immuable qui représente un entier arbitrairement grand dont la valeur en théorie n'a pas de limite supérieure ou inférieure. Les méthodes du type BigInteger sont très proches de celles des autres types intégraux.
.NET inclut les types à virgule flottante suivants :
Type | Taille (en octets) | Plage approximative | Primitive ? | Notes |
---|---|---|---|---|
System.Half | 2 | ±65504 | Non | Introduit dans .NET 5 |
System.Single | 4 | ±3,4 x 1038 | Oui | |
System.Double | 8 | ±1,7 × 10308 | Oui | |
System.Decimal | 16 | ±7,9228 x 1028 | Non |
Les types Half, Single et Double prennent en charge des valeurs spéciales qui représentent une valeur NaN (N’est pas un nombre) et l’infini. Par exemple, le type Double fournit les valeurs suivantes : Double.NaN, Double.NegativeInfinity et Double.PositiveInfinity. Vous utilisez les méthodes Double.IsNaN, Double.IsInfinity, Double.IsPositiveInfinity et Double.IsNegativeInfinity pour tester ces valeurs spéciales.
Chaque type à virgule flottante prend en charge un ensemble d’opérateurs arithmétiques standard. La classe System.Math fournit des méthodes pour un ensemble plus large de fonctions mathématiques. .NET Core 2.0 (et versions ultérieures) inclut la classe System.MathF, qui fournit des méthodes acceptant des arguments du type Single.
Vous pouvez également travailler avec les bits individuels de valeurs Double, Single et Half en utilisant la classe System.BitConverter. La structure System.Decimal a ses propres méthodes, Decimal.GetBits et Decimal(Int32[]) pour travailler avec les bits individuel d'une valeur décimale, ainsi que son propre ensemble de méthodes pour effectuer d'autres opérations mathématiques.
Les types Double, Single et Half sont destinés à être utilisé pour des valeurs par nature imprécises (par exemple, la distance entre deux étoiles) et les applications dans lesquelles un haut degré de précision et une erreur d’arrondi réduite ne sont pas des impératifs. Utilisez le type System.Decimal pour les cas dans lesquels une plus grande précision est requise et où les erreurs d’arrondi doivent être minimisées.
Notes
Le type Decimal n’élimine pas la nécessité d’arrondi. Au lieu de cela, il réduit les erreurs dues à l’arrondi.
La structure System.Numerics.Complex représente un nombre complexe, c'est-à-dire un nombre avec une partie réelle et une partie imaginaire. Elle prend en charge un ensemble standard d'opérateurs arithmétiques, de comparaison, d'égalité, de conversion explicite et implicite, ainsi que des méthodes mathématiques, algébriques et trigonométriques.
L’espace de noms System.Numerics comprend un ensemble de types compatibles SIMD pour .NET. Les opérations SIMD (Single Instruction Multiple Data) peuvent être parallélisées au niveau du matériel. Cela augmente le débit des calculs vectorisés, couramment utilisés dans les applications mathématiques, scientifiques et graphiques.
Les types .NET compatibles SIMD sont les suivants :
Les types Vector2, Vector3 et Vector4, qui représentent des vecteurs à 2, 3 et 4 valeurs Single.
Deux types de matrices, Matrix3x2, qui représente une matrice 3 x 2, et Matrix4x4, qui représente une matrice 4 x 4.
Le type Plane, qui représente un plan dans un espace à trois dimensions.
Le type Quaternion, qui représente un vecteur utilisé pour encoder des rotations physiques en trois dimensions.
Le type Vector<T>, qui représente un vecteur d’un type numérique spécifié et fournit un large éventail d’opérateurs bénéficiant d’un support SIMD. Le nombre d’une instance Vector<T> est fixe, mais sa valeur Vector<T>.Count dépend de l’UC de l’ordinateur sur lequel le code est exécuté.
Notes
Le type Vector<T> est inclus avec .NET Core et .NET 5 (et versions ultérieures), mais pas avec .NET Framework. Si vous utilisez .NET Framework, installez le package NuGet System.Numerics.Vectors pour accéder à ce type.
Les types compatibles SIMD sont implémentés de telle sorte qu’ils peuvent être utilisés avec du matériel non compatible SIMD ou des compilateurs JIT. Pour tirer parti des instructions SIMD, vos applications 64 bits doivent être exécutées par le runtime qui utilise le compilateur RyuJIT, inclus dans .NET Core et dans .NET Framework 4.6 (et versions ultérieures). Il ajoute la prise en charge SIMD lors du ciblage de processeurs 64 bits.
Pour plus d’informations, consultez Utiliser des types numériques accélérés par SIMD.
Commentaires sur .NET
.NET est un projet open source. Sélectionnez un lien pour fournir des commentaires :
Entrainement
Module
Choisir le type de données correct dans votre code C# - Training
Choisissez le type de données approprié pour votre code à partir de plusieurs types de base utilisés en C#.