# Int32 結構

## 定義

``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``````

## 備註

Int32 是一個不可變的實值型別，代表帶正負號的整數，其值的範圍從負2147483648（由 Int32.MinValue 常數表示）到正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. 這是縮小轉換，因此如果 `Option Strict` 是 on，則需要C#在中使用 cast 運算子，並在 Visual Basic 中使用轉換方法。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. 如果數值是包含小陣列件的 SingleDoubleDecimal 值，則處理其小數部分取決於執行轉換的編譯器。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 方法，將 Int32 值的字串表示轉換成 Int32You 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);
// 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
``````
``````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 = { -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
``````

## 欄位

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

## 方法

 將這個執行個體與指定的 32 元帶正負號的整數相比較，並傳回它們的相對值指示。Compares this instance to a specified 32-bit signed integer and returns an indication of their relative values. 將這個執行個體與指定的物件相比較，並傳回它們的相對值指示。Compares this instance to a specified object and returns an indication of their relative values. 傳回值，表示這個執行個體是否等於指定的 Int32 值。Returns a value indicating whether this instance is equal to a specified Int32 value. 傳回值，指出此執行個體是否等於指定的物件。Returns a value indicating whether this instance is equal to a specified object. 傳回這個執行個體的雜湊碼。Returns the hash code for this instance. 傳回實值類型 TypeCode 的 Int32。Returns the TypeCode for value type Int32. 將數字的範圍表示 (使用指定樣式和特定文化特性格式) 轉換為其對等 32 位元帶正負號的整數。Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. 將數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number to its 32-bit signed integer equivalent. 將指定特定文化特性格式之數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number in a specified culture-specific format to its 32-bit signed integer equivalent. 將指定樣式之數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number in a specified style to its 32-bit signed integer equivalent. 將指定樣式和特定文化特性格式之數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. 將這個執行個體的數值轉換為它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation. 使用指定的特定文化特性格式資訊，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation using the specified culture-specific format information. 使用指定格式，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation, using the specified format. 使用指定的格式和特定文化特性格式資訊，將這個執行個體的數值轉換成它的相等字串表示。Converts the numeric value of this instance to its equivalent string representation using the specified format and culture-specific format information. 嘗試將目前整數執行個體的值格式化為所提供的字元範圍。Tries to format the value of the current integer number instance into the provided span of characters. 將數字的範圍表示 (使用指定樣式和特定文化特性格式) 轉換為其對等 32 位元帶正負號的整數。Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. 傳回指示轉換是否成功的值。A return value indicates whether the conversion succeeded. 將數字的範圍表示 (使用指定樣式和特定文化特性格式) 轉換為其對等 32 位元帶正負號的整數。Converts the span representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. 傳回指示轉換是否成功的值。A return value indicates whether the conversion succeeded. 將數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number to its 32-bit signed integer equivalent. 傳回指示轉換是否成功的值。A return value indicates whether the conversion succeeded. 將指定樣式和特定文化特性格式之數字的字串表示轉換成它的對等 32 位元帶正負號的整數。Converts the string representation of a number in a specified style and culture-specific format to its 32-bit signed integer equivalent. 傳回指示轉換是否成功的值。A return value indicates whether the conversion succeeded.

## 明確介面實作

 將這個執行個體與指定的物件相比較，並傳回它們的相對值指示。Compares this instance to a specified object and returns an indication of their relative values. 傳回實值類型 TypeCode 的 Int32。Returns the TypeCode for value type Int32. 如需這個成員的說明，請參閱 ToBoolean(IFormatProvider)。For a description of this member, see ToBoolean(IFormatProvider). 如需這個成員的說明，請參閱 ToByte(IFormatProvider)。For a description of this member, see ToByte(IFormatProvider). 如需這個成員的說明，請參閱 ToChar(IFormatProvider)。For a description of this member, see ToChar(IFormatProvider). 不支援這個轉換。This conversion is not supported. 嘗試使用這個方法會擲回 InvalidCastException。Attempting to use this method throws an InvalidCastException. 如需這個成員的說明，請參閱 ToDecimal(IFormatProvider)。For a description of this member, see ToDecimal(IFormatProvider). 如需這個成員的說明，請參閱 ToDouble(IFormatProvider)。For a description of this member, see ToDouble(IFormatProvider). 如需這個成員的說明，請參閱 ToInt16(IFormatProvider)。For a description of this member, see ToInt16(IFormatProvider). 如需這個成員的說明，請參閱 ToInt32(IFormatProvider)。For a description of this member, see ToInt32(IFormatProvider). 如需這個成員的說明，請參閱 ToInt64(IFormatProvider)。For a description of this member, see ToInt64(IFormatProvider). 如需這個成員的說明，請參閱 ToSByte(IFormatProvider)。For a description of this member, see ToSByte(IFormatProvider). 如需這個成員的說明，請參閱 ToSingle(IFormatProvider)。For a description of this member, see ToSingle(IFormatProvider). 如需這個成員的說明，請參閱 ToType(Type, IFormatProvider)。For a description of this member, see ToType(Type, IFormatProvider). 如需這個成員的說明，請參閱 ToUInt16(IFormatProvider)。For a description of this member, see ToUInt16(IFormatProvider). 如需這個成員的說明，請參閱 ToUInt32(IFormatProvider)。For a description of this member, see ToUInt32(IFormatProvider). 如需這個成員的說明，請參閱 ToUInt64(IFormatProvider)。For a description of this member, see ToUInt64(IFormatProvider).