• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • INICIO
  • CANAL DE YOUTUBE
  • CONTACTAR

másQteclas

Tecnología para todos

  • Podcasts
  • Noticias
  • Artículos
  • Tutoriales

Tipos de datos numéricos en Swift

30 marzo, 2015 por José Manuel Ramírez

En este artículo veremos los tipos de datos numéricos en Swift, centrándonos en los enteros, los números en punto flotante y los literales numéricos. Al igual que pasa con otros lenguajes de programación, Swift incorpora la sintaxis y reglas necesarias para el tratamiento de números dentro de nuestros programas.

Más adelante en próximos artículos veremos otro tema muy importante como es el de la conversión entre los distintos sistemas de numeración.

Datos numéricos en Swift. Los números enteros

Dentro de los datos numéricos en Swift, los números enteros son aquellos que no tienen una parte decimal, como el 21 o el 56. Existen dos tipos: los enteros con signo (signed) que abarcan los positivos, negativos y el cero; y los enteros sin signo (unsigned) que incluyen únicamente los positivos y el cero. El lenguaje de programación Swift proporciona longitudes de 8, 16, 32 y 64 bits para representar ambos tipos. A la hora de su representación hay que decir que es muy parecida a como se hace en el lenguaje C, por ejemplo,  UInt8 para un entero sin signo de 8 bits y Int32 para enteros con signo de 32 bits. Todos los tipos de enteros en Swift tienen su palabra reservada capitalizada como ocurre con otros tipos de datos en el lenguaje.

Para acceder a los valores máximos y mínimos que puede tomar cada uno de los tipos de enteros usaremos las propiedades min y max que incluyen sus objetos (sin necesidad de crear una instancia de los mismos). Por ejemplo, para ver el valor minimo y máximo de un entero sin signo de 8 bits:

​let​ ​valorMinimo​ = ​UInt8​.​min​ ​// valorMinimo es igual a 0, y su tipo es UInt8
​let​ ​valorMaximo​ = ​UInt8​.​max​ ​// valorMaximo es igual a 255, y su tipo es UInt8

Si queremos ver los máximos y mínimos de otros tipos de datos numéricos en Swift con o sin signo procederíamos de la misma forma usando también sus propiedades max y min.

En la mayoría de las ocasiones, a la hora de escribir un programa, no es necesario especificar el tamaño de tu entero en el código. Swift proporciona un tipo de datos adicional denominado Int (con signo) y UInt (sin signo) que tienen el mismo tamaño que el ancho de palabra de la plataforma a la que destinemos nuestro programa. Por ejemplo:

  • En plataformas de 32-bits, Int es del mismo tamaño que Int32.
  • En plataformas de 64-bits, Int es del mismo tamaño que Int64.
  • En plataformas de 32-bits, UInt es del mismo tamaño que Int32.
  • En plataformas de 64-bits, UInt es del mismo tamaño que Int64.

Al menos que necesitemos trabajar con un tamaño específico de enteros, lo recomendable es usar siempre Int/UInt para valores enteros en nuestro código. Esto facilitará la interoperabilidad y la coherencia de nuestro código. Aún cuando trabajemos con plataformas de 32 bits, Int puede almacenar cualquier valor comprendido entre -2.147.483.648 y 2.147.483.647 que va a ser suficiente para nosotros.

Números en punto flotante

Continuando con los datos numéricos en Swift, los números en punto flotante (o también coma flotante) son números com parte decimal como 3.1416, 0.1 y 245.32. Este tipo de números pueden representar un rango mucho mayor que los números enteros y las variables declaradas de este tipo pueden almacenar valores muy pequeños o muy grandes de los que puede almacenar Int. Swift proporciona dos tipos de números en punto flotante con signo:

  • Double. Representa un número en punto flotante de 64 bits. Usaremos este tipo de datos cuando queramos declarar variables que requieran mucha precisión. En concreto tiene una longitud máxima de 15 dígitos decimales.
  • Float. Representa un número en punto flotante de 32 bits. Usaremos este otro tipo de números cuando queramos representar cantidades que no requieran demasiada precisión. En el caso del Float tiene una longitud máxima de 6 dígitos decimales.

El tipo de dato Double ya fue usado en el artículo La técnica String Interpolation en el lenguaje Swift cuando veíamos cómo crear y mostrar en consola una cadena de texto personalizada para por ejemplo, analizar el flujo de una parte de programa.

Representación de literales numéricos

Los literales enteros pueden ser representados en distintos sistemas de numeración como binario, octal y hexadecimal. El siguiente ejemplo muestra como usar esta notación:

  • Un número decimal sin prefijo
  • Un número binario con el prefijo 0b
  • Un número octal con el prefijo 0o
  • Un número hexadecimal con el prefijo 0x

Todas las constantes del siguiente ejemplo tienen el valor entero 17:

​let​ ​enteroDecimal​ = ​17
​let​ ​enteroBinario​ = ​0b10001​ ​// 17 en notación binaria
​let​ ​enteroOctal = ​0o21​ ​// 17 en notación octal
​let​ entero​Hexadecimal​ = ​0x11​ ​// 17 en notación hexadecimal

Dentro de los datos numéricos en Swift, los literales numéricos en Punto Flotante pueden ser números decimales (sin ningún prefijo), o hexadecimales (usando el prefijo 0x). Este tipo de representación obligatoriamente debe tener un número (o un número hexadecimal) a ambos lados de la coma decimal. También pueden tener, de forma opcional, un exponente representado por la letra e (mayúscula o minúscula da igual) para números flotantes decimales, o una letra p (mayúscula o minúscula) para números flotantes hexadecimales.

Para números decimales con exponente e, se multiplica el numero por 10 elevado al exponente.

  • 1.25e2 significa 1.25 × 102, ó 125.0.
  • 1.25e-2 significa 1.25 × 10-2, ó 0.0125.

Para números hexadecimales con exponente p, se multiplica el número por 2 elevado a dicho exponente exponente.

  • 0xFp2 significa 15 × 22, ó 60.0.
  • 0xFp-2 significa 15 × 2-2, ó 3.75.

Como vemos en el siguiente ejemplo, todos los números tienen el mismo valor 12.1875 pero están expresados de forma muy diferente.

​let​ ​doubleDecimal​ = ​12.1875
​let​ ​doubleExponente​ = ​1.21875e1
​let​ ​doubleHexadecimal​ = ​0xC.3p0

Los literales numéricos pueden contener un formato que nos permita leerlos con menor dificultad. Tanto los enteros como los números en coma flotante pueden ser rellenados con ceros adicionales y también pueden contener guiones bajos como separador de miles. Este formato distinto, por supuesto que no va a afectar al valor numérico del número subyacente. Veamos un ejemplo:

​let​ ​doubleCeros​ = ​000123.456
​let​ ​unMillon​ = ​1_000_000
​let​ ​pocoMasDeUnMillon​ = ​1_000_000.000_000_1

Hasta aquí el repaso a los diferentes tipos de datos numéricos en Swift. Espero que os haya parecido interesante el artículo y si necesitáis que os despeje alguna duda ya sabéis que podéis hacerlo rellenando este formulario. Nos leemos en la próxima.

Adiós, os!!

Publicado en: Artículos Etiquetado como: Programación

Acerca de José Manuel Ramírez

🚀 Explorador de gadgets al límite | 🎥 Sinceridad en cada review | 💡 Descubre la magia detrás de cada dispositivo conmigo | 🛠️ Consejos, trucos y opiniones sin filtro. Si te apasiona la tecnología como a mí, este es tu canal #Gadgets #TechLover #OpinionesReales

Barra lateral principal

Canal de Youtube

🛍 Enlaces patrocinados

Haz tu compra en estos enlaces patrocinados y colabora con la web sin coste adicional para ti. ¡Gracias!

Chuches en Amazon Chuches en Aliexpress Chuches en Banggood Chuches en Geekbuying

Mi libro


Libro servidores NAS

banner

Footer

másQteclas es la web donde encontrarás mucha información relacionada con la tecnología en lo que a hardware y software se refiere. Tendrás reviews de productos, tutoriales paso a paso, podcasts diarios, vídeos en Youtube, noticias tecnológicas y mucho, mucho más. ¡Únete a la comunidad masqueteclera!

Información:

  • Quién soy
  • Política de cookies
  • Política de privacidad
  • Suscripción a la lista de correo
  • Contactar

Busca en la web …

  • Facebook
  • Instagram
  • Telegram
  • Twitter

Copyright © · másQteclas 2021