System.Int32 yapısı
Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.
Int32 , negatif 2.147.483.648 (sabitle gösterilir) ile pozitif 2.147.483.647 (sabitle temsil Int32.MinValue edilir) arasında değişen değerlerle imzalı Int32.MaxValue tamsayıları temsil eden sabit bir değer türüdür. .NET ayrıca, UInt320 ile 4.294.967.295 arasında değerleri temsil eden işaretsiz bir 32 bit tamsayı değer türü içerir.
Int32 değerinin örneğini oluşturma
Bir değerin örneğini Int32 çeşitli yollarla oluşturabilirsiniz:
Bir Int32 değişken bildirebilir ve veri türü aralığı Int32 içinde bir değişmez tamsayı değeri atayabilirsiniz. Aşağıdaki örnek iki Int32 değişken bildirir ve bunlara bu şekilde değerler atar.
int number1 = 64301; int number2 = 25548612;
let number1 = 64301 let number2 = 25548612
Dim number1 As Integer = 64301 Dim number2 As Integer = 25548612
Aralığı türün alt kümesi Int32 olan bir tamsayı türünün değerini atayabilirsiniz. Bu, C# dilinde bir atama işleci veya Visual Basic'te dönüştürme yöntemi gerektirmeyen ancak F# dilinde bir dönüştürme gerektiren bir genişletme dönüştürmesidir.
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 value2
Dim value1 As SByte = 124 Dim value2 As Int16 = 1618 Dim number1 As Integer = value1 Dim number2 As Integer = value2
Aralığı türün değerini aşan sayısal bir türün Int32 değerini atayabilirsiniz. Bu bir daraltma dönüştürmesi olduğundan, C# veya F# dilinde bir atama işleci ve açıksa
Option Strict
Visual Basic'te bir dönüştürme yöntemi gerektirir. Sayısal değer kesirli bileşen içeren bir Single, Doubleveya Decimal değeriyse, kesirli bölümünün işlenmesi, dönüştürmeyi gerçekleştiren derleyiciye bağlıdır. Aşağıdaki örnek, değişkenlere birkaç sayısal değer atamak için Int32 daraltma dönüştürmeleri gerçekleştirir.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
let 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 // 132451
Dim 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
Desteklenen herhangi bir türü bir değere dönüştürmek için sınıfının bir Int32 yöntemini Convert çağırabilirsiniz. Arabirimi desteklediğinden Int32IConvertible bu mümkündür. Aşağıdaki örnekte bir değer dizisinin Decimal değerlere dönüştürülmesi Int32 gösterilmektedir.
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.
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.
Bir değerin Parse dize gösterimini Int32 öğesine dönüştürmek için Int32veya TryParse yöntemini çağırabilirsiniz. Dize ondalık veya onaltılık basamak içerebilir. Aşağıdaki örnek, hem ondalık hem de onaltılık dize kullanarak ayrıştırma işlemini gösterir.
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
let 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 // 1022524
Dim 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
Int32 değerlerinde işlem gerçekleştirme
türü Int32 toplama, çıkarma, bölme, çarpma, olumsuzlama ve tekli olumsuzlama gibi standart matematiksel işlemleri destekler. Diğer integral türleri gibi, Int32 türü de bit tabanlı AND
, OR
, , XOR
sol shift ve sağ shift işleçlerini destekler.
İki Int32 değeri karşılaştırmak için standart sayısal işleçleri kullanabilir veya veya Equals yöntemini çağırabilirsinizCompareTo.
Ayrıca, bir sayının Math mutlak değerini alma, tamsayıdan bölüm ve kalan değerleri hesaplama, iki tamsayının en büyük veya en düşük değerini belirleme, bir sayının işaretini alma ve bir sayıyı yuvarlama gibi çok çeşitli sayısal işlemler gerçekleştirmek için sınıfın üyelerini çağırabilirsiniz.
Int32'yi dize olarak temsil edin
Türü, Int32 standart ve özel sayısal biçim dizeleri için tam destek sağlar. (Daha fazla bilgi için bkz. Biçimlendirme Türleri, Standart Sayısal Biçim Dizeleri ve Özel Sayısal Biçim Dizeleri.)
Bir Int32 değeri başta sıfır olmadan bir tamser dize olarak biçimlendirmek için parametresiz ToString() yöntemini çağırabilirsiniz. "D" biçim tanımlayıcısını kullanarak, dize gösterimine belirtilen sayıda baştaki sıfır da ekleyebilirsiniz. "N" biçim tanımlayıcısını kullanarak, grup ayırıcıları ekleyebilir ve sayının dize gösteriminde görüntülenecek ondalık basamak sayısını belirtebilirsiniz. "X" biçim tanımlayıcısını kullanarak, bir Int32 değeri onaltılık dize olarak temsil edebilirsiniz. Aşağıdaki örnek, bir değer dizisindeki Int32 öğeleri bu dört yolla biçimlendirir.
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
Ayrıca yöntemini çağırarak ToString(Int32, Int32) ve yöntemin ikinci parametresi olarak tabanını sağlayarak bir Int32 değeri ikili, sekizlik, ondalık veya onaltılık dize olarak biçimlendirebilirsiniz. Aşağıdaki örnek, bir tamsayı değerleri dizisinin ikili, sekizli ve onaltılık gösterimlerini görüntülemek için bu yöntemi çağırır.
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
Ondalık olmayan 32 bit tamsayı değerleriyle çalışma
Ondalık değer olarak tek tek tamsayılarla çalışmaya ek olarak, tamsayı değerleriyle bit düzeyinde işlemler gerçekleştirmek veya tamsayı değerlerinin ikili veya onaltılı gösterimleriyle çalışmak isteyebilirsiniz. Int32 değerleri 31 bit olarak temsil edilir ve otuz saniyelik bit bir işaret biti olarak kullanılır. Pozitif değerler, işaret ve büyüklük gösterimi kullanılarak temsil edilir. Negatif değerler ikinin tamamlayıcı gösterimindedir. Bu, değerler üzerinde Int32 bit düzeyinde işlemler gerçekleştirirken veya tek tek bitlerle çalışırken göz önünde bulundurmanız önemlidir. Ondalık olmayan iki değer üzerinde sayısal, Boole veya karşılaştırma işlemi gerçekleştirmek için her iki değerin de aynı gösterimi kullanması gerekir.