¿Qué son los tipos numéricos ?
En el lenguaje de programación Go, tenemos diferentes tipos numéricos que nos permiten trabajar con valores enteros y flotantes. Estos tipos de datos son fundamentales en muchas aplicaciones y nos brindan la capacidad de realizar cálculos matemáticos precisos. En este artículo, exploraremos los tipos numéricos en Go, centrándonos en los enteros y los flotantes.
Enteros
Los enteros son números sin parte decimal y se dividen en diferentes tamaños y signos en Go. Los siguientes son los tipos enteros disponibles en Go:
int
Este tipo entero se adapta al tamaño de la arquitectura subyacente y puede ser de 32 o 64 bits dependiendo del sistema en el que se esté ejecutando.
var edad int = 33
int8, int16, int32, int64
Estos tipos enteros tienen un tamaño fijo de 8, 16, 32 y 64 bits, respectivamente. El número que sigue a int
indica el número de bits utilizados para almacenar el valor.
uint8, uint16, uint32, uint64
Estos tipos enteros sin signo tienen el mismo tamaño que sus contrapartes con signo (int8
, int16
, int32
, int64
), pero no tienen signo. Esto significa que solo pueden representar valores positivos y tienen un rango más amplio de valores que los enteros con signo.
Además de estos tipos enteros básicos, Go también proporciona alias de tipo para facilitar la legibilidad del código, como
byte
(equivalente auint8
) yrune
(equivalente aint32
).
Flotantes
Los números flotantes representan valores con parte decimal. En Go, tenemos dos tipos flotantes:
const PI float32 = 3.1416
float32
Este tipo flotante de 32 bits puede representar números en coma flotante con una precisión de aproximadamente 7 dígitos decimales.
float64
Este tipo flotante de 64 bits tiene una mayor precisión y puede representar números en coma flotante con aproximadamente 15 dígitos decimales.
Es importante tener en cuenta que los números flotantes no pueden representar con precisión todos los valores reales debido a las limitaciones de la representación binaria. Por lo tanto, es posible que se produzcan pequeños errores de redondeo en operaciones aritméticas con números flotantes.
Ejemplos de tipos numéricos
La siguiente tabla describe los tipos de valores numéricos posibles.
tipo | tamaño | rango |
---|---|---|
int8 | 8 bits | -128 a 127 |
int16 | 16 bits | -2^15 a 2^15 -1 |
int32 | 32 bits | -2^31 a 2^31 -1 |
int64 | 64 bits | -2^63 a 2^63 -1 |
uint8 | 8 bits | 0 a 255 |
uint16 | 16 bits | 0 a 2^16 -1 |
uint32 | 32 bits | 0 a 2^32 -1 |
uint64 | 64 bits | 0 a 2^64 -1 |
Ejemplos de valores decimales expresados como binarios
Binario | Decimal |
---|---|
0000 | 0 |
0001 | 1 |
0010 | 2 |
0011 | 3 |
0100 | 4 |
1111 | 16 |
Acerca de los valores numéricos
Todos estos constituyen posibles tipos numéricos, sin embargo a nivel de la computadora todos se guardan como valores binarios (0 y 1). Un bit equivale ya sea a un 0 o un 1. Para un campo de 4 bits por ejemplo, se pueden almacenar 16 números.
También es importante hacer notar que los valores enteros “signed” incluyen números positivos y negativos. Mientras que los unsigned solo números positivos.
El número máximo que puede ser utilizado por una computadora, depende de la arquitectura de esta. En los equipos de 64 bits de hoy en día esto representa el entero 9223372036854775807.
Valores máximos y mínimos
En Go, podemos obtener los valores máximos y mínimos que pueden ser representados por los tipos numéricos utilizando las constantes predefinidas en el paquete math. Por ejemplo, podemos acceder al valor máximo de un entero de 32 bits utilizando math.MaxInt32 y al valor mínimo de un flotante de 64 bits utilizando math.SmallestNonzeroFloat64.
maxEntero32 := math.MaxInt32
minFlotante64 := math.SmallestNonzeroFloat64
Los tipos numéricos en Go nos brindan la capacidad de representar y manipular valores enteros y flotantes en nuestros programas. Con una variedad de operaciones y funciones matemáticas disponibles, podemos realizar cálculos precisos y tomar decisiones basadas en valores numéricos.