# 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 是不可變的實值型別代表帶正負號的整數值的範圍從負 2,147,483,648 (代表Int32.MinValue常數) 到正數 2,147,483,647 (表示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 到 4,294,967,295 的值。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# 和 Visual Basic 中的轉換方法Option Strict上。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. 如果數字的值是SingleDouble，或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.

• 您可以呼叫Parse或是TryParse方法，將轉換的字串表示法Int32Int32You 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類型也支援位元ANDORXOR，左 shift 鍵和向右移位運算子。Like the other integral types, the Int32 type also supports the bitwise AND, OR, XOR, left shift, and right shift operators.

### 表示為字串的 Int32Representing 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.