Números enteros en C#

Resumen: en este tutorial, aprenderás a usar los tipos enteros de C# para representar los números enteros.
Introducción a los enteros de C#
Los enteros son números enteros, por ejemplo, -1, 0, 1, 2, 3
. C# usa los tipos numéricos integrales para representar números enteros. Hasta ahora, has aprendido a usar el tipo int
para declarar una variable que contiene un número entero.
Además del tipo int, C# tiene otros tipos de enteros con su palabra clave, rango y tamaño específicos.
La siguiente tabla ilustra las características de todos los tipos de enteros en C#:
Tipos C# | Rango | Tamaño |
---|---|---|
sbyte |
-128 a 127 | Entero de 8 bits con signo |
byte |
0 a 255 | Entero de 8 bits sin signo |
short |
-32,768 a 32,767 | Entero de 16 bits con signo |
ushort |
0 a 65,535 | Entero de 16 bits sin signo |
int |
-2,147,483,648 a 2,147,483,647 | Entero de 32 bits con signo |
uint |
0 a 4,294,967,295 | Entero de 32 bits sin signo |
long |
-9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 | Entero de 64 bits con signo |
ulong |
0 a 18,446,744,073,709,551,615 | Entero de 64 bits sin signo |
C# también tiene otros dos tipos de enteros nint
y nunit
cuyos rangos dependen de la plataforma específica.
Si declaras una variable con un tipo entero y asigna un valor que está fuera de rango, obtendrás un error de compilación.
Por ejemplo, lo siguiente declara una edad variable con el tipo byte
e inicializa su valor a un valor no válido 256
:
byte age = 256;
Cuando compilas el código, el compilador emite el siguiente error:
error CS0031: Constant value '256' cannot be converted to a 'byte'
Valores mínimos y máximos
Cada tipo entero tiene las constantes MinValue
y MaxValue
que proporcionan el mínimo y el máximo del tipo que estas utilizando. Para acceder a estos valores, utiliza el operador de punto (.)
. Por ejemplo:
int.MinValue
int.MaxValue
A continuación, se muestra el rango del tipo int
:
Console.WriteLine($"int rango: ({int.MinValue},{int.MaxValue})");
Resultado
int rango: (-2147483648,2147483647)
Literales enteros
Los literales enteros pueden ser decimales, hexadecimales y binarios.
Números decimales
El siguiente ejemplo muestra los literales enteros en decimal sin ningún prefijo:
int quantity = 10;
int amount = 20;
Si un número es grande, puedes usar el separador de dígitos (_)
para hacerlo más legible. Ten en cuenta que puede usar el separador de dígitos (_)
para todos los literales enteros, no solo decimales. Por ejemplo:
int prize = 1_000_000;
Hexadecimal
Los números hexadecimales tienen el prefijo 0x
o 0X
. Por ejemplo:
int address = 0x5A;
Binario
Los números binarios tienen el prefijo 0b
o 0B
. Por ejemplo:
int flag = 0b10011110;
Además, puedes usar el separador de dígitos (_)
para separar los dígitos de esta manera:
int flag = 0b_1001_1110;
Resumen
- Utiliza el tipo entero de
C#
para representar números enteros. - Use el separador de dígitos
(_)
con números grandes para hacerlos más legibles.