Java desde 0: Números enteros
Tags: tutorial, java, beginners, spanish
Published: 2021-01-15 03:14:07

Última actualización: 20/1/2020

## ¿Qué haremos?

### [¿Qué son los datos primitivos?](#section-1) — Teoría
### [Números](#section-2) — Teoría
### [Bits y Bytes](#section-3)— Teoría

## Tutorial

### ¿Qué son los datos primitivos? <a name="section-1"></a>

Es un dato que especifica el tamaño y el tipo de valor de la variable. Normalmente este esta ya predefinido por el lenguaje con una palabra reservada.

### Números <a name="section-2"></a>

Java tiene 8 datos primitivos, veremos 4 de estos hoy:

* `byte`: Un número que puede estar desde del -128 al 127.
* `short`: Un número que puede estar desde del -32,768 al 32,767.
* `int`: Un número que puede estar desde del -2,147,483,648 al 2,147,483,647.
* `long`: Un número que puede estar desde del -92,23,372,036,854,775,808 al 92,23,372,036,854,775,807.

Entonces el número 8 esta dentro del rango de `byte` y también en el rango de `short`, `int` `long` pero el número 2,147,483,646 está dentro del rango de `int` y `long` pero el número…

**¡Basta de números! ¿Por qué necesito saber esto?**

Bueno resulta que hoy aprenderás los que son las variables, son como cajas, unas más grandes y otras más pequeñas. Como esta caja que solo puede contener números del -128 al 127:

![Frame 12](https://dev-to-uploads.s3.amazonaws.com/i/8j5i1p4oytq2r9egyp22.png)
  
Y cuando la abrimos tiene el número 8 dentro:

![Group 15](https://dev-to-uploads.s3.amazonaws.com/i/07hhdion9zmj495pgdv6.png)
  
**¿Por qué no usar** `long` **siempre? No tendré que recordar todas estas palabras.**

Bueno resulta que tienes razón, muchos programadores usan `int` solamente ya que la mayoría de las veces cumple con las condiciones, es muy raro que te encuentres con número más grande 2,147,483,647 cierto? Bueno si es raro pero no improbable, un buen ejemplo fue el [video Gangnam Style en Youtube](https://lopezdoriga.com/sin-categoria/gangnam-style-rompe-contador-de-vistas-en-youtube/). Si hubieran usado `long` en vez de `int` no hubiera pasado, entonces te explicaré porque no siempre debes usar `long` o `int`.

### Bits y Bytes <a name="section-3"></a>

Las máquinas no pueden comprender las palabras comunes que utilizamos por eso están los lenguajes de programación, hay muchas y diferentes abstracciones en cada lenguaje pero lo único que entiende una máquina es el lenguaje binario, veremos el número 5 en este:

![Frame 14](https://dev-to-uploads.s3.amazonaws.com/i/fs8oeghg35xm1vn9wg09.png) 

Se ve muy confuso al principio pero créeme es mas fácil de lo que se ve, sumaremos todos los valores que están en morado pero los que tienen arriba el número `1` ya que estos son los que están activos, el lenguaje binario tiene dos estados `1` o `0`. Si lo conseguiste sumar verás que la suma es 5.

![Frame 16](https://dev-to-uploads.s3.amazonaws.com/i/qtwz3m96gk1po95pl0tj.png)
  
Entonces te preguntarás ¿Qué es el byte? Bueno este es una combinación de 8 bits, que serían un byte, quizás no haz escuchado muchos estos términos pero ¿Qué hay de gigabytes o kilobytes? Ah esos si, cuando tienes que descargar una aplicación o película.

Seguro que mientras estás descargando uno de estos archivos, haz dicho: “Desearía que pesará menos…” o tu dispositivo dice: “Espacio insuficiente”. Bueno aquí entra lo que es el manejo de memoria en la programación, así que vamos a darle el espacio necesario a nuestros números, si es una edad usemos `bytes` ya que la mayoría de los casos no hay edades mayores a 127 o cuando contemos vistas de youtube usemos `long` ya que como vimos anteriormente un video se puede ver muuuuuchas veces seguidas.

## Ejercicio

¿Ejercicio? ¡Pero cómo, si no me has enseñado el código!

![](https://cdn-images-1.medium.com/max/800/1*msAw7vUtVKemmCwGQhnmfQ.jpeg)

Esta bien, Esta bien mira como se declara una variable, solo te daré eso:

![](https://dev-to-uploads.s3.amazonaws.com/i/19ik2tpckzzl9vfu9x3c.png) 

Si lo sé, no te he mostrado casi nada pero se que lo lograras. Abre el [link](https://gitpod.io/#/https://github.com/CodeWithClassyBear/java-desde-0/tree/master/N%C3%BAmeros%20Enteros) y practiquemos un poco.

---

Si tienes preguntas o alguna sugerencia me puedes dejar un comentario :)

Me encuentro también en [Dev.to](https://dev.to/classybear) haciendo tutoriales.

## Donaciones:
* Bitcoin — `bc1qhr9jhlj5wvrkah5v4kkdvf6ggskjpf8m82f5cj`
* BAT o Brave Rewards — `0x391b5DAe375ca6a20fACd0f7afc461fAc56d1864`
* Patreon — [classyBear](https://www.patreon.com/classyBear)