# Int32Int32Int32Int32 Struct

## 定義

``public value class Int32 : IComparable, IComparable<int>, IConvertible, IEquatable<int>, IFormattable``
``````[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct Int32 : IComparable, IComparable<int>, IConvertible, IEquatable<int>, IFormattable``````
``````type int = struct
interface IFormattable
interface IConvertible``````
``````Public Structure Int32
Implements IComparable, IComparable(Of Integer), IConvertible, IEquatable(Of Integer), IFormattable``````

Int32Int32Int32Int32

## 備註

Int32這是一個不可變的實值型別，代表帶正負號的整數，其值的範圍Int32.MinValue從負2147483648（由常數表示）到正 2147483647 Int32.MaxValue （以常數表示）。Int32 is an immutable value type that represents signed integers with values that range from negative 2,147,483,648 (which is represented by the Int32.MinValue constant) through positive 2,147,483,647 (which is represented by the Int32.MaxValue constant. .NET Framework 也包含不帶正負號的32位整數數值型別UInt32，這代表的值範圍從0到4294967295。The .NET Framework also includes an unsigned 32-bit integer value type, UInt32, which represents values that range from 0 to 4,294,967,295.

### 具現化 Int32 值Instantiating an Int32 Value

• 您可以Int32宣告變數，並為其指派在Int32資料類型範圍內的常值整數值。You can declare an Int32 variable and assign it a literal integer value that is within the range of the Int32 data type. 下列範例會宣告兩Int32個變數，並以這種方式為其指派值。The following example declares two Int32 variables and assigns them values in this way.

``````int number1 = 64301;
int number2 = 25548612;
``````
``````Dim number1 As Integer = 64301
Dim number2 As Integer = 25548612
``````
• 您可以指派整數類型的值，其範圍是Int32類型的子集。You can assign the value of an integer type whose range is a subset of the Int32 type. 這是擴輾轉換，不需要中C#的轉換運算子或 Visual Basic 中的轉換方法。This is a widening conversion that does not require a cast operator in C# or a conversion method in Visual Basic.

``````sbyte value1 = 124;
short value2 = 1618;

int number1 = value1;
int number2 = value2;
``````
``````Dim value1 As SByte = 124
Dim value2 As Int16 = 1618

Dim number1 As Integer = value1
Dim number2 As Integer = value2
``````
• 您可以指派數數值型別的值， Int32其範圍超出類型的範圍。You can assign the value of a numeric type whose range exceeds that of the Int32 type. 這是一個縮小轉換，因此，它需要中C#的 cast 運算子和 Visual Basic 中的轉換方法`Option Strict` （如果是 on）。This is a narrowing conversion, so it requires a cast operator in C# and a conversion method in Visual Basic if `Option Strict` is on. 如果數值是Single包含小陣列件的Double、或Decimal值，則處理其小數部分取決於執行轉換的編譯器。If the numeric value is a Single, Double, or Decimal value that includes a fractional component, the handling of its fractional part depends on the compiler performing the conversion. 下列範例會執行縮小轉換，將數個數值Int32指派給變數。The following example performs narrowing conversions to assign several numeric values to Int32 variables.

``````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
``````
``````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
``````
• 您可以呼叫Convert類別的方法，將任何支援的類型Int32轉換成值。You can call a method of the Convert class to convert any supported type to an Int32 value. 這是可能的Int32 IConvertible ，因為支援介面。This is possible because Int32 supports the IConvertible interface. 下列範例說明如何將Decimal值陣列轉換成Int32值。The following example illustrates the conversion of an array of Decimal values to Int32 values.

``````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.
``````
``````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.
``````
• 您可以呼叫ParseTryParse方法，將Int32Int32的字串表示轉換成。You can call the Parse or TryParse method to convert the string representation of an Int32 value to an Int32. 字串可以包含十進位或十六進位數位。The string can contain either decimal or hexadecimal digits. 下列範例說明使用十進位和十六進位字串的剖析作業。The following example illustrates the parse operation by using both a decimal and a hexadecimal string.

``````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
``````
``````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 值上執行運算Performing Operations on Int32 Values

Int32型別支援標準的數學運算，例如加法、減法、除法、乘法、負和一元否定。The Int32 type supports standard mathematical operations such as addition, subtraction, division, multiplication, negation, and unary negation. 與其他整數類資料類型一樣Int32 ，此類型也支援`AND``OR``XOR`、、左移位和右移位運算子。Like the other integral types, the Int32 type also supports the bitwise `AND`, `OR`, `XOR`, left shift, and right shift operators.

### 將 Int32 表示為字串Representing an Int32 as a String

Int32型別會提供標準和自訂數值格式字串的完整支援。The Int32 type provides full support for standard and custom numeric format strings. （如需詳細資訊，請參閱格式化類型標準數值格式字串自訂數值格式字串。）(For more information, see Formatting Types, Standard Numeric Format Strings, and Custom Numeric Format Strings.)

``````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);
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
``````
``````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)
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 = { -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
``````
``````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
``````

## 欄位

 MaxValue MaxValue MaxValue MaxValue 代表 Int32 最大的可能值。Represents the largest possible value of an Int32. 這個欄位是常數。This field is constant. MinValue MinValue MinValue MinValue 代表 Int32 最小的可能值。Represents the smallest possible value of Int32. 這個欄位是常數。This field is constant.