# Int32 Estructura

## Definición

Representa un entero de 32 bits con signo.Represents a 32-bit signed integer.

``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``````
Herencia
Atributos
Implementaciones

## Comentarios

Int32 es un tipo de valor inmutable que representa enteros con signo con valores que van desde negativo 2.147.483.648 (que se representa mediante la constante Int32.MinValue) hasta el 2.147.483.647 positivo (que se representa mediante la constante 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. El .NET Framework también incluye un tipo de valor entero de 32 bits sin signo, UInt32, que representa valores comprendidos entre 0 y 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.

### Crear instancias de un valor Int32Instantiating an Int32 Value

Puede crear instancias de un valor Int32 de varias maneras:You can instantiate an Int32 value in several ways:

• Puede declarar una variable de Int32 y asignarle un valor entero literal que esté dentro del intervalo del tipo de datos Int32.You can declare an Int32 variable and assign it a literal integer value that is within the range of the Int32 data type. En el siguiente ejemplo se declaran dos variables de Int32 y se les asignan valores de esta manera.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
``````
• Puede asignar el valor de un tipo entero cuyo intervalo sea un subconjunto del tipo de Int32.You can assign the value of an integer type whose range is a subset of the Int32 type. Se trata de una conversión de ampliación que no requiere un operador de conversión C# en o un método de conversión en 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
``````
• Puede asignar el valor de un tipo numérico cuyo intervalo supere el del tipo de Int32.You can assign the value of a numeric type whose range exceeds that of the Int32 type. Se trata de una conversión de restricción, por lo que requiere un operador C# de conversión en y un método de conversión en Visual Basic si `Option Strict` está activada.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. Si el valor numérico es un Single, Doubleo Decimal que incluye un componente fraccionario, el control de su parte fraccionaria depende del compilador que realiza la conversión.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. En el ejemplo siguiente se realizan conversiones de restricción para asignar varios valores numéricos a Int32 variables.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
``````
• Puede llamar a un método de la clase Convert para convertir cualquier tipo compatible en un valor Int32.You can call a method of the Convert class to convert any supported type to an Int32 value. Esto es posible porque Int32 admite la interfaz IConvertible.This is possible because Int32 supports the IConvertible interface. En el ejemplo siguiente se muestra la conversión de una matriz de valores Decimal en Int32 valores.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.
``````
• Puede llamar al método Parse o TryParse para convertir la representación de cadena de un valor de Int32 en un Int32.You can call the Parse or TryParse method to convert the string representation of an Int32 value to an Int32. La cadena puede contener dígitos decimales o hexadecimales.The string can contain either decimal or hexadecimal digits. En el ejemplo siguiente se muestra la operación de análisis mediante un decimal y una cadena hexadecimal.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
``````

### Realizar operaciones en valores Int32Performing Operations on Int32 Values

El tipo de Int32 admite operaciones matemáticas estándar como la suma, la resta, la división, la multiplicación, la negación y la negación unaria.The Int32 type supports standard mathematical operations such as addition, subtraction, division, multiplication, negation, and unary negation. Al igual que los demás tipos enteros, el tipo de Int32 también admite los operadores bit a bit `AND`, `OR`, `XOR`, Mayús Izq y desplazamiento a la derecha.Like the other integral types, the Int32 type also supports the bitwise `AND`, `OR`, `XOR`, left shift, and right shift operators.

Puede usar los operadores numéricos estándar para comparar dos valores Int32, o puede llamar al método CompareTo o Equals.You can use the standard numeric operators to compare two Int32 values, or you can call the CompareTo or Equals method.

También puede llamar a los miembros de la clase Math para realizar una amplia gama de operaciones numéricas, incluida la obtención del valor absoluto de un número, el cálculo del cociente y el resto de la división integral, la determinación del valor máximo o mínimo de dos enteros, la obtención del signo de un número y el redondeo de un número.You can also call the members of the Math class to perform a wide range of numeric operations, including getting the absolute value of a number, calculating the quotient and remainder from integral division, determining the maximum or minimum value of two integers, getting the sign of a number, and rounding a number.

### Representar un Int32 como una cadenaRepresenting an Int32 as a String

El tipo de Int32 proporciona compatibilidad total con las cadenas de formato numérico estándar y personalizado.The Int32 type provides full support for standard and custom numeric format strings. (Para obtener más información, vea aplicar formato a tipos, cadenas de formato numérico estándary cadenas de formato numérico personalizado).(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
``````

También puede dar formato a un valor de Int32 como una cadena binaria, octal, decimal o hexadecimal llamando al método ToString(Int32, Int32) y proporcionando la base como segundo parámetro del método.You can also format an Int32 value as a binary, octal, decimal, or hexadecimal string by calling the ToString(Int32, Int32) method and supplying the base as the method's second parameter. En el ejemplo siguiente se llama a este método para mostrar las representaciones binarias, octales y hexadecimales de una matriz de valores enteros.The following example calls this method to display the binary, octal, and hexadecimal representations of an array of integer values.

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

### Trabajar con valores enteros de 32 bits no decimalesWorking with Non-Decimal 32-Bit Integer Values

Además de trabajar con enteros individuales como valores decimales, puede que desee realizar operaciones bit a bit con valores enteros o trabajar con las representaciones binarias o hexadecimales de valores enteros.In addition to working with individual integers as decimal values, you may want to perform bitwise operations with integer values, or work with the binary or hexadecimal representations of integer values. Int32 valores se representan en 31 bits, con el bit de 30 segundos utilizado como bit de signo.Int32 values are represented in 31 bits, with the thirty-second bit used as a sign bit. Los valores positivos se representan mediante la representación de signo y magnitud.Positive values are represented by using sign-and-magnitude representation. Los valores negativos se encuentran en la representación del complemento de dos.Negative values are in two's complement representation. Esto es importante tener en cuenta al realizar operaciones bit a bit en Int32 valores o cuando se trabaja con bits individuales.This is important to keep in mind when you perform bitwise operations on Int32 values or when you work with individual bits. Para realizar una operación numérica, booleana o de comparación con dos valores no decimales, ambos valores deben usar la misma representación.In order to perform a numeric, Boolean, or comparison operation on any two non-decimal values, both values must use the same representation.

## Campos

 Representa el mayor valor posible de un Int32.Represents the largest possible value of an Int32. Este campo es constante.This field is constant. Representa el menor valor posible de Int32.Represents the smallest possible value of Int32. Este campo es constante.This field is constant.