Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Opmerking
In dit artikel vindt u aanvullende opmerkingen in de referentiedocumentatie voor deze API.
Int32 is een onveranderbaar waardetype dat ondertekende gehele getallen vertegenwoordigt met waarden die variëren van negatief 2.147.483.648 (die wordt vertegenwoordigd door de Int32.MinValue constante) tot en met positief 2.147.483.647 (die wordt vertegenwoordigd door de Int32.MaxValue constante). .NET bevat ook een niet-ondertekend 32-bits geheel getal, UInt32dat waarden vertegenwoordigt tussen 0 en 4.294.967.295.
Instantieer een Int32-waarde
U kunt een Int32 waarde op verschillende manieren instantiëren:
U kunt een Int32 variabele declareren en deze toewijzen aan een letterlijk geheel getal dat zich binnen het bereik van het Int32 gegevenstype bevindt. In het volgende voorbeeld worden twee Int32 variabelen gede declareert en op deze manier waarden toegewezen.
int number1 = 64301; int number2 = 25548612;let number1 = 64301 let number2 = 25548612Dim number1 As Integer = 64301 Dim number2 As Integer = 25548612U kunt de waarde van een geheel getaltype toewijzen waarvan het bereik een subset van het Int32 type is. Dit is een widening conversie die geen cast-operator in C# of een conversiemethode in Visual Basic vereist, maar wel een in F#.
sbyte value1 = 124; short value2 = 1618; int number1 = value1; int number2 = value2;let value1 = 124y let value2 = 1618s let number1 = int value1 let number2 = int value2Dim value1 As SByte = 124 Dim value2 As Int16 = 1618 Dim number1 As Integer = value1 Dim number2 As Integer = value2U kunt de waarde van een numeriek type toewijzen waarvan het bereik groter is dan dat van het Int32 type. Dit is een vermalingsconversie, dus hiervoor is een cast-operator in C# of F# en een conversiemethode in Visual Basic vereist als
Option Strictdeze is ingeschakeld. Als de numerieke waarde een Single, Doubleof Decimal waarde is die een breukonderdeel bevat, is de verwerking van het breukgedeelte afhankelijk van de compiler die de conversie uitvoert. In het volgende voorbeeld worden narrowing conversies uitgevoerd om verschillende numerieke waarden toe te wijzen aan de Int32-variabelen.long lNumber = 163245617; try { int number1 = (int) lNumber; Console.WriteLine(number1); } catch (OverflowException) { Console.WriteLine($"{lNumber} is out of range of an Int32."); } double dbl2 = 35901.997; try { int number2 = (int) dbl2; Console.WriteLine(number2); } catch (OverflowException) { Console.WriteLine($"{dbl2} is out of range of an Int32."); } BigInteger bigNumber = 132451; try { int number3 = (int) bigNumber; Console.WriteLine(number3); } catch (OverflowException) { Console.WriteLine($"{bigNumber} is out of range of an Int32."); } // The example displays the following output: // 163245617 // 35902 // 132451let lNumber = 163245617L try let number1 = int lNumber printfn $"{number1}" with :? OverflowException -> printfn "{lNumber} is out of range of an Int32." let dbl2 = 35901.997 try let number2 = int dbl2 printfn $"{number2}" with :? OverflowException -> printfn $"{dbl2} is out of range of an Int32." let bigNumber = BigInteger 132451 try let number3 = int bigNumber printfn $"{number3}" with :? OverflowException -> printfn $"{bigNumber} is out of range of an Int32." // The example displays the following output: // 163245617 // 35902 // 132451Dim 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 ' 132451U kunt een methode van de Convert-klasse aanroepen om elk ondersteund type te converteren naar een Int32 waarde. Dit is mogelijk omdat Int32 de IConvertible-interface ondersteunt. In het volgende voorbeeld ziet u de conversie van een matrix met Decimal waarden naar Int32 waarden.
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 {value.GetType().Name} value '{value}' to the {result.GetType().Name} value {result}."); } catch (OverflowException) { Console.WriteLine($"{value} is outside the range of the Int32 type."); } } // 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.let values = [| Decimal.MinValue; -1034.23M; -12m; 0M; 147M 199.55M; 9214.16M; Decimal.MaxValue |] for value in values do try let result = Convert.ToInt32 value printfn $"Converted the {value.GetType().Name} value '{value}' to the {result.GetType().Name} value {result}." with :? OverflowException -> printfn $"{value} is outside the range of the Int32 type." // 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.Dim 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.U kunt de methode Parse of TryParse aanroepen om de tekenreeksweergave van een Int32-waarde te converteren naar een Int32. De tekenreeks kan decimale of hexadecimale cijfers bevatten. Het volgende voorbeeld illustreert de parseringsbewerking met behulp van zowel een decimaalteken als een hexadecimale tekenreeks.
string string1 = "244681"; try { int number1 = Int32.Parse(string1); Console.WriteLine(number1); } catch (OverflowException) { Console.WriteLine($"'{string1}' is out of range of a 32-bit integer."); } catch (FormatException) { Console.WriteLine($"The format of '{string1}' is invalid."); } string string2 = "F9A3C"; try { int number2 = Int32.Parse(string2, System.Globalization.NumberStyles.HexNumber); Console.WriteLine(number2); } catch (OverflowException) { Console.WriteLine($"'{string2}' is out of range of a 32-bit integer."); } catch (FormatException) { Console.WriteLine($"The format of '{string2}' is invalid."); } // The example displays the following output: // 244681 // 1022524let string1 = "244681" try let number1 = Int32.Parse string1 printfn $"{number1}" with | :? OverflowException -> printfn "'{string1}' is out of range of a 32-bit integer." | :? FormatException -> printfn $"The format of '{string1}' is invalid." let string2 = "F9A3C" try let number2 = Int32.Parse(string2, System.Globalization.NumberStyles.HexNumber) printfn $"{number2}" with | :? OverflowException -> printfn $"'{string2}' is out of range of a 32-bit integer." | :? FormatException -> printfn $"The format of '{string2}' is invalid." // The example displays the following output: // 244681 // 1022524Dim 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
Bewerkingen uitvoeren op Int32-waarden
Het Int32 type ondersteunt standaard wiskundige bewerkingen, zoals optellen, aftrekken, delen, vermenigvuldigen, negatie en unaire negatie. Net als bij de andere integrale typen ondersteunt het Int32 type ook de bitsgewijze AND, OR, XOR, linker shift- en rechter shiftoperators.
U kunt de standaard numerieke operatoren gebruiken om twee Int32 waarden te vergelijken, of u kunt de methode CompareTo of Equals aanroepen.
U kunt ook de leden van de Math klasse aanroepen om een breed scala aan numerieke bewerkingen uit te voeren, waaronder het ophalen van de absolute waarde van een getal, het berekenen van het quotiënt en de rest van een integrale verdeling, het bepalen van de maximum- of minimumwaarde van twee gehele getallen, het ophalen van het teken van een getal en het afronden van een getal.
Een Int32 weergeven als een tekenreeks
Het Int32 type biedt volledige ondersteuning voor tekenreeksen met standaard- en aangepaste numerieke notatie. (Zie Opmaaktypen, Standaardtekenreeksen voor numerieke notatieen tekenreeksen voor aangepaste numerieke notatie.)
Als u een Int32-waarde wilt opmaken als een integrale tekenreeks zonder voorloopnullen, kunt u de parameterloze ToString() methode aanroepen. Met behulp van de notatieaanduiding D kunt u ook een opgegeven aantal voorloopnullen opnemen in de tekenreeksweergave. Met de notatieaanduiding N kunt u groepsscheidingstekens opnemen en het aantal decimalen opgeven dat moet worden weergegeven in de tekenreeksweergave van het getal. Met behulp van de notatieaanduiding X kunt u een Int32 waarde weergeven als een hexadecimale tekenreeks. In het volgende voorbeeld worden de elementen in een matrix met Int32 waarden op deze vier manieren opgemaakt.
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
let numbers = [| -1403; 0; 169; 1483104 |]
for number in numbers do
// Display value using default formatting.
printf $"{number,-8} --> "
// Display value with 3 digits and leading zeros.
printf $"{number,11:D3}"
// Display value with 1 decimal digit.
printf $"{number,13:N1}"
// Display value as hexadecimal.
printf $"{number,12:X2}"
// Display value with eight hexadecimal digits.
printfn $"{number,14:X8}"
// 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
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
U kunt een Int32 waarde ook opmaken als een binaire, octale, decimale of hexadecimale tekenreeks door de ToString(Int32, Int32) methode aan te roepen en de basis op te geven als de tweede parameter van de methode. In het volgende voorbeeld wordt deze methode aangeroepen om de binaire, octale en hexadecimale weergaven van een matrix met gehele getallen weer te geven.
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
let numbers = [| -146; 11043; 2781913 |]
printfn $"""{"Value",8} {"Binary",32} {"Octal",11} {"Hex",10}"""
for number in numbers do
printfn $"{number,8} {Convert.ToString(number, 2),32} {Convert.ToString(number, 8),11} {Convert.ToString(number, 16),10}"
// The example displays the following output:
// Value Binary Octal Hex
// -146 11111111111111111111111101101110 37777777556 ffffff6e
// 11043 10101100100011 25443 2b23
// 2781913 1010100111001011011001 12471331 2a72d9
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
Werken met niet-decimale 32-bits gehele getallen
Naast het werken met afzonderlijke gehele getallen als decimale waarden, kunt u bitsgewijze bewerkingen uitvoeren met gehele getallen of werken met de binaire of hexadecimale weergaven van gehele getallen. Int32 waarden worden weergegeven in 31 bits, waarbij de tweeëndertigste bit wordt gebruikt als een tekenbit. Positieve waarden worden vertegenwoordigd door middel van een teken- en grootteweergave. Negatieve waarden bevinden zich in de complementweergave van twee. Dit is belangrijk om rekening mee te houden wanneer u bitsgewijze bewerkingen uitvoert op Int32 waarden of wanneer u met afzonderlijke bits werkt. Als u een numerieke, Booleaanse of vergelijkingsbewerking wilt uitvoeren op twee niet-decimale waarden, moeten beide waarden dezelfde weergave gebruiken.