本文由机器翻译。若要查看英语原文,请勾选“英语”复选框。 也可将鼠标指针移到文本上,在弹出窗口中显示英语原文。
翻译
英语

Int32 结构

 

表示 32 位有符号整数。

若要浏览此类型的.NET Framework 源代码,请参阅 Reference Source

命名空间:   System
程序集:  mscorlib(位于 mscorlib.dll)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public struct Int32 : IComparable, IFormattable, IConvertible, 
	IComparable<int>, IEquatable<int>

名称说明
System_CAPS_pubmethodCompareTo(Int32)

将此实例与指定的 32 位有符号整数进行比较并返回对其相对值的指示。

System_CAPS_pubmethodCompareTo(Object)

将此实例与指定对象进行比较并返回一个对二者的相对值的指示。

System_CAPS_pubmethodEquals(Int32)

返回一个值,该值指示此实例是否等于指定的 Int32 值。

System_CAPS_pubmethodEquals(Object)

返回一个值,该值指示此实例是否等于指定的对象。(覆盖 ValueType.Equals(Object)。)

System_CAPS_pubmethodGetHashCode()

返回此实例的哈希代码。(覆盖 ValueType.GetHashCode()。)

System_CAPS_pubmethodGetType()

获取当前实例的 Type(继承自 Object。)

System_CAPS_pubmethodGetTypeCode()

返回值类型 TypeCodeInt32

System_CAPS_pubmethodSystem_CAPS_staticParse(String)

将数字的字符串表示形式转换为它的等效 32 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, IFormatProvider)

将指定的区域性特定格式的数字的字符串表示形式转换为它的等效 32 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, NumberStyles)

将指定样式的数字的字符串表示形式转换为它的等效 32 位有符号整数。

System_CAPS_pubmethodSystem_CAPS_staticParse(String, NumberStyles, IFormatProvider)

将指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效 32 位有符号整数。

System_CAPS_pubmethodToString()

将此实例的数值转换为其等效的字符串表示形式。(覆盖 ValueType.ToString()。)

System_CAPS_pubmethodToString(IFormatProvider)

使用指定的区域性特定格式信息,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodToString(String)

使用指定的格式,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodToString(String, IFormatProvider)

使用指定的格式和区域性特定格式信息,将此实例的数值转换为它的等效字符串表示形式。

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, Int32)

将数字的字符串表示形式转换为它的等效 32 位有符号整数。 一个指示转换是否成功的返回值。

System_CAPS_pubmethodSystem_CAPS_staticTryParse(String, NumberStyles, IFormatProvider, Int32)

将指定样式和区域性特定格式的数字的字符串表示形式转换为它的等效 32 位有符号整数。 一个指示转换是否成功的返回值。

名称说明
System_CAPS_pubfieldSystem_CAPS_staticMaxValue

表示 Int32 的最大可能值。 此字段为常数。

System_CAPS_pubfieldSystem_CAPS_staticMinValue

表示 Int32 的最小可能值。 此字段为常数。

名称说明
System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToBoolean(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToBoolean

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToByte(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToByte

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToChar(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToChar

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDateTime(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 不支持此转换。 尝试使用此方法将引发 InvalidCastException

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDecimal(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToDecimal

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToDouble(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToDouble

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt16(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt16

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt32(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt32

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToInt64(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToInt64

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSByte(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToSByte

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToSingle(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToSingle

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToType(Type, IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToType

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt16(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToUInt16

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt32(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToUInt32

System_CAPS_pubinterfaceSystem_CAPS_privmethodIConvertible.ToUInt64(IFormatProvider)

此 API 支持 产品 基础结构,不应从代码直接使用。 有关此成员的说明,请参阅 IConvertible.ToUInt64

System_CAPS_note说明

若要查看此类型的.NET Framework 源代码,请参阅 Reference Source 您可以浏览源代码、 下载脱机查看参考资料和调试; 在逐句通过源 (包括修补程序和更新)see instructions.

Int32 是表示不可变的值类型的有符号整数值范围从负的 2147483648 (这由 Int32.MinValue 常量) 到 + 2147483647 之间 (这由 Int32.MaxValue 常量。 .NET Framework 还包括 32 位无符号的整数值类型, UInt32, ,表示范围从 0 到 4294967295 之间的值。

您可以实例化 Int32 以下几种方式的值︰

  • 您可以声明 Int32 变量并将其分配的范围内的文本整数值 Int32 数据类型。 下面的示例声明了两个 Int32 变量并将它们分配这种方式中的值。

    int number1 = 64301;
    int number2 = 25548612;
    
  • 您可以将其范围是子集的整数类型的值分配的 Int32 类型。 这是不需要强制转换运算符在 C# 或 Visual Basic 中的转换方法的扩大转换。

    sbyte value1 = 124;
    short value2 = 1618;
    
    int number1 = value1;
    int number2 = value2;
    
  • 你可以分配的范围超过为数值类型值的 Int32 类型。 这是收缩转换,因此它需要强制转换运算符在 C# 和 Visual Basic 中的转换方法是在 OptionStrict 上。 如果数值为 Single, ,Double, ,或 Decimal 包括小数部分,其小数部分处理的值取决于编译器执行转换。 下面的示例执行收缩转换,将分配到几个数值 Int32 变量。

    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
    
  • 您可以调用的方法 Convert 类能够将任何受支持的类型设置为 Int32 值。 这可能是因为 Int32 支持 IConvertible 接口。 下面的示例演示数组的转换 Decimal 值复制到 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 {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.
    
  • 您可以调用 ParseTryParse 方法将转换的字符串表示形式 Int32 值赋给 Int32 该字符串可包含十进制或十六进制数字。 下面的示例说明了通过使用十进制和十六进制字符串的分析操作。

    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
    

Int32 类型支持标准的数学运算,例如加法、 减法、 除法、 乘法、 求反、 和一元求反。 像其他整数类型, Int32 类型还支持按位 AND, ,OR, ,XOR, ,左移位和右移位运算符。

可以使用标准数字运算符来比较两个 Int32 值,也可以调用 CompareToEquals 方法。

您还可以调用的成员 Math 类来执行各种数值操作,包括获取数字的绝对值的数值、 计算商和整数除法运算的余数,确定两个整数的最大值或最小值、 获取数字的符号和舍入数字。

Int32 类型提供对标准和自定义数字格式字符串的完全支持。 (有关详细信息,请参阅 .NET Framework 中的格式化类型, ,标准数字格式字符串, ,和 自定义数字格式字符串。)

若要设置格式 Int32 值为不带前导零的整数字符串,您可以调用无参数 ToString() 方法。 通过使用"D"格式说明符,还可以包括指定的数目的字符串表示形式中的前导零。 通过使用"N"格式说明符,可以包含组分隔符,并指定的十进制位数,才会出现在数字字符串表示形式。 您可以通过使用"X"格式说明符,来表示 Int32 值作为十六进制字符串。 下面的示例在一个数组中的元素进行格式设置 Int32 以下四种方式中的值。

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

也可以格式化 Int32 通过调用十进制或十六进制字符串值作为二进制、 八进制 ToString(Int32, Int32) 方法,并提供基作为该方法的第二个参数。 下面的示例调用此方法以显示二进制、 八进制和十六进制形式表示的整数值的数组。

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

除了处理作为十进制值单个整数,您可能想要执行按位运算的整数值,或使用二进制或十六进制值的表示形式的整数。 Int32 值以 31 位,三十秒位用作符号位为单位表示。 正值均通过使用符号数值表示法表示。 负值都以 2 的补数表示。 这一点上执行按位运算时,需要注意 Int32 值或当您处理的单个位进行运算。 若要执行的数字、 布尔值或对任何两个非十进制值的比较运算,这两个值都必须使用相同的表示形式。

通用 Windows 平台
自 8 起可用
.NET Framework
自 1.1 起可用
可移植类库
可移植 .NET 平台 中受支持
Silverlight
自 2.0 起可用
Windows Phone Silverlight
自 7.0 起可用
Windows Phone
自 8.1 起可用

此类型的所有成员都是线程安全。 实际上,看起来要修改实例状态的成员返回使用新值进行初始化的新实例。 作为与任何其他类型,读取和写入对共享变量,其中包含此类型的实例必须保护锁来保证线程安全性。

返回页首
显示: