Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nota
Artikel ini menyediakan keterangan tambahan untuk dokumentasi referensi untuk API ini.
Int32 adalah jenis nilai yang tidak dapat diubah yang mewakili bilangan bulat yang ditandatangani dengan nilai yang berkisar dari negatif 2.147.483.648 (yang diwakili oleh Int32.MinValue konstanta) melalui positif 2.147.483.647 (yang diwakili oleh Int32.MaxValue konstanta). .NET juga menyertakan jenis nilai bilangan bulat 32-bit yang tidak ditandatangani, UInt32, yang mewakili nilai yang berkisar antara 0 hingga 4.294.967.295.
Menginisialisasi nilai Int32
Anda dapat menginstansiasi nilai Int32 dengan beberapa cara:
Anda dapat mendeklarasikan variabel Int32 dan menetapkannya nilai bilangan bulat harfiah yang berada dalam rentang jenis data Int32. Contoh berikut mendeklarasikan dua variabel Int32 dan menetapkan nilainya dengan cara ini.
int number1 = 64301; int number2 = 25548612;let number1 = 64301 let number2 = 25548612Dim number1 As Integer = 64301 Dim number2 As Integer = 25548612Anda dapat menetapkan nilai jenis bilangan bulat yang rentangnya merupakan subset dari jenis tersebut Int32 . Ini adalah konversi perluasan yang tidak memerlukan operator cast di C# atau metode konversi di Visual Basic, tetapi memerlukannya di 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 = value2Anda dapat menetapkan nilai jenis numerik yang rentangnya melebihi jenis Int32. Ini adalah konversi yang mempersempit, sehingga memerlukan operator cast di C# atau F#, dan metode konversi di Visual Basic jika
Option Strictaktif. Jika nilai numerik adalah nilai Single, Double, atau Decimal yang menyertakan komponen pecahan, penanganan bagian pecahannya tergantung pada pengkompilasi yang melakukan konversi. Contoh berikut melakukan konversi yang mempersempit untuk menetapkan beberapa nilai numerik ke variabel Int32.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 ' 132451Anda dapat memanggil metode kelas Convert untuk mengonversi jenis yang didukung menjadi nilai Int32. Ini dimungkinkan karena Int32 mendukung antarmuka IConvertible. Contoh berikut mengilustrasikan konversi array nilai Decimal ke nilai Int32.
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.Anda dapat memanggil metode Parse atau TryParse untuk mengonversi representasi string dari nilai Int32 menjadi Int32. String dapat berisi digit desimal atau heksadesimal. Contoh berikut mengilustrasikan operasi penguraian dengan menggunakan string desimal dan heksadesimal.
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
Melakukan operasi pada nilai Int32
Jenis Int32 mendukung operasi matematika standar seperti penambahan, pengurangan, pembagian, perkalian, negasi, dan negasi unary. Seperti tipe integral lainnya, tipe Int32 juga mendukung operator bitwise AND, OR, XOR, shift kiri, dan shift kanan.
Anda dapat menggunakan operator numerik standar untuk membandingkan dua nilai Int32, atau Anda dapat memanggil metode CompareTo atau Equals.
Anda juga dapat memanggil anggota kelas Math untuk melakukan berbagai operasi numerik, termasuk mendapatkan nilai absolut angka, menghitung kuota dan sisanya dari pembagian integral, menentukan nilai maksimum atau minimum dua bilangan bulat, mendapatkan tanda angka, dan membulatkan angka.
Mewakili Int32 sebagai string
Jenis Int32 menyediakan dukungan penuh untuk string format numerik standar dan kustom. (Untuk informasi selengkapnya, lihat Jenis Pemformatan, String Format Numerik Standar, dan String Format Numerik Kustom.)
Untuk memformat nilai Int32 sebagai string integral tanpa nol di depan, Anda dapat memanggil metode ToString() tanpa parameter. Dengan menggunakan penentu format "D", Anda juga dapat menyertakan jumlah nol di depan tertentu dalam representasi string. Dengan menggunakan penentu format "N", Anda dapat menyertakan pemisah grup dan menentukan jumlah digit desimal yang akan muncul dalam representasi string angka. Dengan menggunakan penentu format "X", Anda dapat mewakili nilai Int32 sebagai string heksadesimal. Contoh berikut memformat elemen dalam array nilai Int32 dengan empat cara ini.
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
Anda juga dapat memformat nilai Int32 sebagai string biner, oktal, desimal, atau heksadesimal dengan memanggil metode ToString(Int32, Int32) dan menyediakan basis sebagai parameter kedua metode. Contoh berikut memanggil metode ini untuk menampilkan representasi biner, oktal, dan heksadesimal dari array nilai bilangan bulat.
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
Bekerja dengan nilai bilangan bulat 32-bit bukan desimal
Selain bekerja dengan bilangan bulat individual sebagai nilai desimal, Anda mungkin ingin melakukan operasi bitwise dengan nilai bilangan bulat, atau bekerja dengan representasi biner atau heksadesimal dari nilai bilangan bulat. Int32 nilai diwakili dalam 31 bit, dengan bit ke-32 digunakan sebagai bit tanda. Nilai positif diwakili dengan menggunakan representasi tanda dan besaran. Nilai negatif berada dalam representasi pelengkap dua dalam sistem bilangan biner. Ini penting untuk diingat ketika Anda melakukan operasi bitwise pada nilai Int32 atau ketika Anda bekerja dengan bit individual. Untuk melakukan operasi numerik, Boolean, atau perbandingan pada dua nilai non-desimal, kedua nilai harus menggunakan representasi yang sama.