Représente un entier signé 32 bits.
Assembly : mscorlib (dans mscorlib.dll)
<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Structure Int32 _ Implements IComparable, IFormattable, IConvertible, IComparable(Of Integer), _ IEquatable(Of Integer)
[SerializableAttribute] [ComVisibleAttribute(true)] public struct Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
[SerializableAttribute] [ComVisibleAttribute(true)] public value class Int32 : IComparable, IFormattable, IConvertible, IComparable<int>, IEquatable<int>
[<Sealed>] [<SerializableAttribute>] [<ComVisibleAttribute(true)>] type Int32 = struct interface IComparable interface IFormattable interface IConvertible interface IComparable<int> interface IEquatable<int> end
Le type Int32 expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
CompareTo(Int32) | Compare cette instance à un entier signé 32 bits et retourne une indication de leurs valeurs relatives. |
|
CompareTo(Object) | Compare cette instance à un objet spécifié et retourne une indication de leurs valeurs relatives. |
|
Equals(Int32) | Retourne une valeur indiquant si cette instance équivaut à une valeur Int32 spécifiée. |
|
Equals(Object) | Retourne une valeur indiquant si cette instance est égale à un objet spécifié. (Substitue ValueType.Equals(Object).) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
GetHashCode | Retourne le code de hachage pour cette instance. (Substitue ValueType.GetHashCode().) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
GetTypeCode | Retourne le TypeCode du type valeur Int32. |
|
MemberwiseClone | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
Parse(String) | Convertit la représentation sous forme de chaîne d'un nombre en entier signé 32 bits équivalent. |
|
Parse(String, NumberStyles) | Convertit la représentation sous forme de chaîne d'un nombre dans un style spécifié en entier signé 32 bits équivalent. |
|
Parse(String, IFormatProvider) | Convertit la représentation sous forme de chaîne d'un nombre dans un format propre à une culture spécifié en entier signé 32 bits équivalent. |
|
Parse(String, NumberStyles, IFormatProvider) | Convertit la représentation sous forme de chaîne d'un nombre dans un style et un format propre à une culture spécifiés en entier signé 32 bits équivalent. |
|
ToString() | Convertit la valeur numérique de cette instance en sa représentation équivalente sous forme de chaîne. (Substitue ValueType.ToString().) |
|
ToString(IFormatProvider) | Convertit la valeur numérique de cette instance en sa représentation sous forme de chaîne équivalente à l'aide des informations de format spécifiques à la culture donnée. |
|
ToString(String) | Convertit la valeur numérique de cette instance en sa représentation sous forme de chaîne équivalente en utilisant le format spécifié. |
|
ToString(String, IFormatProvider) | Convertit la valeur numérique de cette instance en sa représentation sous forme de chaîne équivalente à l'aide de la mise en forme spécifiée et des informations de mise en forme spécifiques à la culture. |
|
TryParse(String, Int32) | Convertit la représentation sous forme de chaîne d'un nombre en entier signé 32 bits équivalent. Une valeur de retour indique si la conversion a réussi. |
|
TryParse(String, NumberStyles, IFormatProvider, Int32) | Convertit la chaîne d'un nombre dans un style et un format propre à une culture spécifiés en entier signé 32 bits équivalent. Une valeur de retour indique si la conversion a réussi. |
| Nom | Description | |
|---|---|---|
|
MaxValue | Représente la plus grande valeur possible de Int32. Ce champ est constant. |
|
MinValue | Représente la plus petite valeur possible de Int32. Ce champ est constant. |
| Nom | Description | |
|---|---|---|
|
IConvertible.ToBoolean | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToBoolean. |
|
IConvertible.ToByte | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToByte. |
|
IConvertible.ToChar | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToChar. |
|
IConvertible.ToDateTime | Infrastructure. Cette conversion n'est pas prise en charge. Toute tentative d'utilisation de cette méthode lève un InvalidCastException. |
|
IConvertible.ToDecimal | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToDecimal. |
|
IConvertible.ToDouble | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToDouble. |
|
IConvertible.ToInt16 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt16. |
|
IConvertible.ToInt32 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt32. |
|
IConvertible.ToInt64 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToInt64. |
|
IConvertible.ToSByte | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToSByte. |
|
IConvertible.ToSingle | Infrastructure. Pour obtenir une description de ce membre, consultez IConvertible.ToSingle. |
|
IConvertible.ToType | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToType. |
|
IConvertible.ToUInt16 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt16. |
|
IConvertible.ToUInt32 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt32. |
|
IConvertible.ToUInt64 | Infrastructure. Pour une description de ce membre, consultez IConvertible.ToUInt64. |
Int32 est un type immuable qui représente un entier signé avec des valeurs comprises entre - 2 147 483 648 (qui est représenté par la constante Int32.MinValue) et + 2 147 483 647 (qui est représenté par la constante Int32.MaxValue). Le .NET Framework inclut également un type de valeur d'entier 32 bits non signé, UInt32, qui représente des valeurs comprises entre 0 et 4 294 967 295.
Instanciation d'une valeur Int32
Vous pouvez instancier une valeur Int32 de plusieurs façons :
-
Vous pouvez déclarer une variable Int32 et l'assigner à une valeur d'entier littérale comprise dans la plage du type de données Int32. L'exemple suivant déclare deux variables Int32 et leur assigne des valeurs de cette manière.
Visual BasicDim number1 As Integer = 64301 Dim number2 As Integer = 25548612
C#int number1 = 64301; int number2 = 25548612;
-
Vous pouvez assigner la valeur d'un type entier dont la plage est un sous-ensemble du type Int32. Il s'agit d'une conversion étendue qui ne requiert aucun opérateur de cast en C# ni méthode de conversion en Visual Basic.
Visual BasicDim value1 As SByte = 124 Dim value2 As Int16 = 1618 Dim number1 As Integer = value1 Dim number2 As Integer = value2
C#sbyte value1 = 124; short value2 = 1618; int number1 = value1; int number2 = value2;
-
Vous pouvez assigner la valeur d'un type numérique dont la plage dépasse celle du type Int32. Il s'agit d'une conversion restrictive ; cela requiert donc un opérateur de cast en C# et une méthode de conversion en Visual Basic si OptionStrict est activé. Si la valeur numérique est une valeur Single, Double ou Decimal qui inclut un composant fractionnaire, la gestion de sa partie fractionnaire dépend du compilateur qui effectue la conversion. L'exemple suivant effectue des conversions restrictives pour assigner plusieurs valeurs numériques aux variables Int32.
Visual BasicDim lNumber As Long = 163245617 Try Dim number1 As Integer = CInt(lNumber) Console.WriteLine(number1) Catch e As OverflowException Console.WriteLine("{0} is out of range of an Int32.", lNumber) End Try Dim dbl2 As Double = 35901.997 Try Dim number2 As Integer = CInt(dbl2) Console.WriteLine(number2) Catch e As OverflowException Console.WriteLine("{0} is out of range of an Int32.", dbl2) End Try Dim bigNumber As BigInteger = 132451 Try Dim number3 As Integer = CInt(bigNumber) Console.WriteLine(number3) Catch e As OverflowException Console.WriteLine("{0} is out of range of an Int32.", bigNumber) End Try ' The example displays the following output: ' 163245617 ' 35902 ' 132451
C#long lNumber = 163245617; try { int number1 = (int) lNumber; Console.WriteLine(number1); } catch (OverflowException) { Console.WriteLine("{0} is out of range of an Int32.", lNumber); } double dbl2 = 35901.997; try { int number2 = (int) dbl2; Console.WriteLine(number2); } catch (OverflowException) { Console.WriteLine("{0} is out of range of an Int32.", dbl2); } BigInteger bigNumber = 132451; try { int number3 = (int) bigNumber; Console.WriteLine(number3); } catch (OverflowException) { Console.WriteLine("{0} is out of range of an Int32.", bigNumber); } // The example displays the following output: // 163245617 // 35902 // 132451
-
Vous pouvez appeler une méthode de la classe Convert pour convertir n'importe quel type pris en charge en valeur Int32. C'est possible parce que Int32 prend en charge l'interface IConvertible. L'exemple suivant illustre la conversion d'un tableau de valeurs Decimal en valeurs Int32.
Visual BasicDim values() As Decimal = { Decimal.MinValue, -1034.23d, -12d, 0d, 147d, _ 199.55d, 9214.16d, Decimal.MaxValue } Dim result As Integer For Each value As Decimal In values Try result = Convert.ToInt32(value) Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", _ value.GetType().Name, value, _ result.GetType().Name, result) Catch e As OverflowException Console.WriteLine("{0} is outside the range of the Int32 type.", _ value) End Try Next ' The example displays the following output: ' -79228162514264337593543950335 is outside the range of the Int32 type. ' Converted the Decimal value '-1034.23' to the Int32 value -1034. ' Converted the Decimal value '-12' to the Int32 value -12. ' Converted the Decimal value '0' to the Int32 value 0. ' Converted the Decimal value '147' to the Int32 value 147. ' Converted the Decimal value '199.55' to the Int32 value 200. ' Converted the Decimal value '9214.16' to the Int32 value 9214. ' 79228162514264337593543950335 is outside the range of the Int32 type.
C#decimal[] values= { Decimal.MinValue, -1034.23m, -12m, 0m, 147m, 199.55m, 9214.16m, Decimal.MaxValue }; int result; foreach (decimal value in values) { try { result = Convert.ToInt32(value); Console.WriteLine("Converted the {0} value '{1}' to the {2} value {3}.", value.GetType().Name, value, result.GetType().Name, result); } catch (OverflowException) { Console.WriteLine("{0} is outside the range of the Int32 type.", value); } } // The example displays the following output: // -79228162514264337593543950335 is outside the range of the Int32 type. // Converted the Decimal value '-1034.23' to the Int32 value -1034. // Converted the Decimal value '-12' to the Int32 value -12. // Converted the Decimal value '0' to the Int32 value 0. // Converted the Decimal value '147' to the Int32 value 147. // Converted the Decimal value '199.55' to the Int32 value 200. // Converted the Decimal value '9214.16' to the Int32 value 9214. // 79228162514264337593543950335 is outside the range of the Int32 type.
-
Vous pouvez appeler les méthodes Parse ou TryParse pour convertir la représentation sous forme de chaîne d'une valeur Int32 en un Int32. La chaîne peut contenir des chiffres décimaux ou hexadécimaux. L'exemple suivant illustre l'opération d'analyse à l'aide d'une chaîne décimale et d'une chaîne hexadécimale.
Visual BasicDim string1 As String = "244681" Try Dim number1 As Integer = Int32.Parse(string1) Console.WriteLine(number1) Catch e As OverflowException Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string1) Catch e As FormatException Console.WriteLine("The format of '{0}' is invalid.", string1) End Try Dim string2 As String = "F9A3C" Try Dim number2 As Integer = Int32.Parse(string2, System.Globalization.NumberStyles.HexNumber) Console.WriteLine(number2) Catch e As OverflowException Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string2) Catch e As FormatException Console.WriteLine("The format of '{0}' is invalid.", string2) End Try ' The example displays the following output: ' 244681 ' 1022524
C#string string1 = "244681"; try { int number1 = Int32.Parse(string1); Console.WriteLine(number1); } catch (OverflowException) { Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string1); } catch (FormatException) { Console.WriteLine("The format of '{0}' is invalid.", string1); } string string2 = "F9A3C"; try { int number2 = Int32.Parse(string2, System.Globalization.NumberStyles.HexNumber); Console.WriteLine(number2); } catch (OverflowException) { Console.WriteLine("'{0}' is out of range of a 32-bit integer.", string2); } catch (FormatException) { Console.WriteLine("The format of '{0}' is invalid.", string2); } // The example displays the following output: // 244681 // 1022524
Exécution d'opérations sur les valeurs Int32
Le type Int32 prend en charge les opérations mathématiques standard, telles que l'addition, la soustraction, la division, la multiplication, la soustraction, la négation et la négation unaire. Comme les autres types intégraux, le type Int32 prend en charge également les opérateurs de bit, de décalage vers la droite et de décalage vers la gauche AND, OR et XOR.
Vous pouvez utiliser les opérateurs numériques standard pour comparer deux valeurs Int32, ou vous pouvez appeler la méthode CompareTo ou Equals.
Représentant un Int32 en tant que chaîne.
Le type Int32 prend complètement en charge les chaînes de format numériques standard et personnalisées. (Pour plus d'informations, consultez Mise en forme des types, Chaînes de format numériques standard et Chaînes de format numériques personnalisées.)
Pour mettre une valeur Int32 sous forme de chaîne d'entier sans zéros non significatifs, vous pouvez appeler la méthode sans paramètre ToString(). En utilisant le spécificateur de format « D », vous pouvez également inclure un nombre spécifié de zéros non significatifs dans la représentation sous forme de chaîne. En utilisant le spécificateur de format « N », vous pouvez inclure des séparateurs de groupes et spécifier le nombre de chiffres décimaux à afficher dans la représentation sous forme de chaîne du nombre. En utilisant le spécificateur de format « X », vous pouvez représenter une valeur Int32 sous forme de chaîne hexadécimale. L'exemple suivant met en forme les éléments dans un tableau de valeurs Int32 selon ces quatre manières.
Dim numbers() As Integer = { -1403, 0, 169, 1483104 } For Each number As Integer In numbers ' Display value using default formatting. Console.Write("{0,-8} --> ", number.ToString()) ' Display value with 3 digits and leading zeros. Console.Write("{0,11:D3}", number) ' Display value with 1 decimal digit. Console.Write("{0,13:N1}", number) ' Display value as hexadecimal. Console.Write("{0,12:X2}", number) ' Display value with eight hexadecimal digits. Console.WriteLine("{0,14:X8}", number) Next ' The example displays the following output: ' -1403 --> -1403 -1,403.0 FFFFFA85 FFFFFA85 ' 0 --> 000 0.0 00 00000000 ' 169 --> 169 169.0 A9 000000A9 ' 1483104 --> 1483104 1,483,104.0 16A160 0016A160
int[] numbers = { -1403, 0, 169, 1483104 }; foreach (int number in numbers) { // Display value using default formatting. Console.Write("{0,-8} --> ", number.ToString()); // Display value with 3 digits and leading zeros. Console.Write("{0,11:D3}", number); // Display value with 1 decimal digit. Console.Write("{0,13:N1}", number); // Display value as hexadecimal. Console.Write("{0,12:X2}", number); // Display value with eight hexadecimal digits. Console.WriteLine("{0,14:X8}", number); } // The example displays the following output: // -1403 --> -1403 -1,403.0 FFFFFA85 FFFFFA85 // 0 --> 000 0.0 00 00000000 // 169 --> 169 169.0 A9 000000A9 // 1483104 --> 1483104 1,483,104.0 16A160 0016A160
Vous pouvez également mettre une valeur Int32 sous forme de chaîne binaire, octale, décimale ou hexadécimale en appelant la méthode ToString(Int32, Int32) et en fournissant la base en tant que second paramètre de la méthode. L'exemple suivant appelle cette méthode pour afficher les représentations binaires, octales et hexadécimales d'un tableau de valeurs entières.
Dim numbers() As Integer = { -146, 11043, 2781913 } Console.WriteLine("{0,8} {1,32} {2,11} {3,10}", _ "Value", "Binary", "Octal", "Hex") For Each number As Integer In numbers Console.WriteLine("{0,8} {1,32} {2,11} {3,10}", _ number, Convert.ToString(number, 2), _ Convert.ToString(number, 8), _ Convert.ToString(number, 16)) Next ' The example displays the following output: ' Value Binary Octal Hex ' -146 11111111111111111111111101101110 37777777556 ffffff6e ' 11043 10101100100011 25443 2b23 ' 2781913 1010100111001011011001 12471331 2a72d9
int[] numbers = { -146, 11043, 2781913 }; Console.WriteLine("{0,8} {1,32} {2,11} {3,10}", "Value", "Binary", "Octal", "Hex"); foreach (int number in numbers) { Console.WriteLine("{0,8} {1,32} {2,11} {3,10}", number, Convert.ToString(number, 2), Convert.ToString(number, 8), Convert.ToString(number, 16)); } // The example displays the following output: // Value Binary Octal Hex // -146 11111111111111111111111101101110 37777777556 ffffff6e // 11043 10101100100011 25443 2b23 // 2781913 1010100111001011011001 12471331 2a72d9
Utilisation de valeurs entières 32 bits non décimales
En plus d'utiliser des entiers individuels comme valeurs décimales, vous pouvez effectuer des opérations au niveau du bit avec des valeurs d'entiers ou utiliser des tableaux d'entiers ou les représentations binaires ou hexadécimales des valeurs d'entiers. Les valeurs Int32 sont représentées en 31 bits, avec le trente-deuxième bit utilisé comme bit de signe. Les valeurs positives sont représentées à l'aide de la représentation « signe et magnitude ». Les valeurs négatives utilisent la représentation du complément à deux. Il est important de le retenir lorsque vous effectuez des opérations au niveau du bit sur des valeurs Int32 ou lorsque vous travaillez avec des bits individuels. Pour effectuer une opération numérique, booléenne ou de comparaison sur deux valeurs non décimales, les deux valeurs doivent utiliser la même représentation.
.NET Framework
Pris en charge dans : 4, 3.5, 3.0, 2.0, 1.1, 1.0.NET Framework Client Profile
Pris en charge dans : 4, 3.5 SP1Pris en charge dans :
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.
Tous les membres de ce type sont thread-safe. Les membres qui semblent modifier l'instance d'état retournent, en réalité, une nouvelle instance initialisée avec la nouvelle valeur. Comme avec tout autre type, la lecture et l'écriture sur une variable partagée qui contient une instance de ce type doivent être protégées par un verrou pour garantir la sécurité des threads.