¿Cuáles son las cinco categorías de datos?
Conceptos de programación Tipos de datos básicos
Fundamentos del almacenamiento de datos
- Variables se nombran ubicaciones de almacenamiento donde se almacenan los datos, que pueden cambiarse a medida que se ejecuta un programa. E.g. "nStudents".
- Constantes son valores que están codificados en un programa, y que no tienen valor de chnage. E.g. "3.14159."
- En última instancia, todos los datos almacenados en un ordenador, tanto variables como constantes, se almacenan como una secuencia de dígitos binarios, por ejemplo. cadenas de ceros y unos.
- Estos dígitos binarios se conocen como "bits".
- Físicamente estos ceros y unos pueden ser implementados usando cables con dos voltajes diferentes, partículas magnéticas con dos alineaciones diferentes, puntos en un disco óptico con dos propiedades ópticas diferentes, o por otros medios.
- Los "tipo" de una variable o constante determinada determina cuántos bits se utilizan para ese elemento de datos paticular, y cómo los bits deben ser interpretados.
- La mayoría de los lenguajes informáticos modernos reconocen cinco categorías básicas de tipos de datos: Integral, Punto Flotante, Carácter, Cadena de Caracteres y tipos compuestos, con varios subtipos específicos definidos dentro de cada categoría amplia. La mayoría de los idiomas modernos también incluyen una serie de tipos especiales específicos de idiomas, y muchos idiomas proporcionan un medio para que los programadores definan sus propios tipos de datos, y las operaciones que se pueden realizar en ellos.
- Los datos pueden ser convertidos de un tipo a otro, ( posiblemente con pérdida de precisión ), ya sea de forma automática o específica.
Tipos integrales
- Los tipos de datos integrales incluyen todos los números enteros, es decir, los números que no tienen ningún componente fraccionario.
- Los bits de tipos integrales se interpretan como poderes simples de dos:
- La parte más a la derecha, conocida como la bit menos significativo , representa el número de 1s. ( 2^0 )
- El siguiente bit representa el número de 2s. ( 2^1 )
- El siguiente bit representa el número de 4s. ( 2^2 )
- El siguiente bit representa el número de 8s. ( 2^3 )
- En general, el nth bit de la derecha representa 2^(n-1)
- Para los tipos integrales no firmados, el bit más a la izquierda, conocido como el bit más significativo , representa 2^(N-1), donde N es el número total de bits en el elemento de datos.
- El rango de valores posibles para un entero no firmado de N bits es de 0 a 2^N - 1. ( Todos 0s a todos 1s )
- Así, por ejemplo, un entero sin signo de 4 bits podría variar de 0 a 15, y un entero sin signo de 8 bits podría variar de 0 a 255.
- Para los tipos integrales firmados, el bit más a la izquierda puede ser considerado como negativo 2^(N-1).
- ( La interpretación real en la computadora es más complicada, pero si lo piensas de esta manera conseguirás las respuestas correctas. )
- El valor más negativo sería el primer bit a 1 y todos los demás bits 0s, dando negativo 2^(N-1). ( Por ejemplo, 1000 ó 1000000 )
- El valor más positivo sería el primer bit un 0 y todos los demás bits 1s, produciendo 2^(N-1) - 1. ( E.g. 0111 o 01111111 )
- Así, por ejemplo, un entero firmado de 4 bits podría variar de -8 a +7, y un entero firmado de 8 bits podría variar de -128 a +127.
- Un tipo integral firmado que tiene todos los bits 1 es igual a -1, independientemente de cuántos bits hay en el número.
- Los enteros firmados y no firmados con el mismo número de bits totales tienen el mismo número de diferentes valores posibles.
- Los enteros sin firmar usan un patrón de bits ( todos 0s ) para representar cero y todos los demás para representar valores positivos.
- Los enteros firmados usan la mitad de los posibles patrones de bits para representar números negativos, un patrón para representar cero, y la mitad menos 1 para representar valores positivos.
- Los lenguajes particulares definen diferentes tipos integrales basados en el número de bits almacenados y si los bits se interpretan o no como un número firmado o no. Algunos lenguajes pueden reservar patrones de bits particulares para representar valores especiales. ( E.g. Matlab define patrones de bits para representar infinito positivo y negativo, así como "NaN", es decir. "No un número" )
Tipos de puntos flotantes
- Los tipos de puntos flotantes incluyen todos los tipos en los que un número puede tener un componente fraccionario, como 42.7 o pi.
- Un determinado número especificado de bits se utilizan para representar los dígitos numéricos del número, como 314159 o 602.
- El resto de los bits se utilizan para indicar dónde el punto decimal ( o punto binario ) se encuentra dentro de los dígitos, tales como -5 para producir 3.14159 o 21 para producir 6.02 * 10^23.
- Algunos patrones de bits están reservados para representar más y menos infinito, más y menos cero, y dos tipos de NaN. ( No todos los lenguajes de computadora soportan estos tipos especiales. )
- Diferentes tipos de datos de puntos flotantes difieren por su precisión , determinado por el número de bits utilizados para representar dígitos, que a su vez está directamente relacionado con el número total de bits en el número. Por ejemplo, en la norma IEEE:
- Precisión única Los flotadores utilizan 32 bits totales y 24 bits para dígitos, produciendo aproximadamente 7 dígitos decimales de precisión y un rango de aproximadamente 10^-38 a 10^38.
- Doble precisión flota, a menudo sólo llamado dobles , utilice 64 bits totales y 53 bits para dígitos, produciendo unos 16 dígitos decimales de precisión y un rango de aproximadamente 10^-308 a 10^308.
- Precisón cuádruple Los flotadores, a menudo llamados dobles largos cuádruples dobles, o dobles dobles, usan 128 bits totales y 113 bits para dígitos, produciendo cerca de 34 dígitos decimales de precisión y un rango de aproximadamente 10^-4932 a 10^4932.
- Independientemente de la precisión, todos los números de puntos flotantes deben ser considerados como aproximaciones redondeadas en computadoras digitales. Por ejemplo, el valor decimal 0.1, es decir. 1/10, no se puede representar como un número exacto de punto flotante usando dígitos binarios como se describe anteriormente.
Caracteres
- La mayoría de los lenguajes compter modernos almacenan caracteres alfabéticos repensenting cada uno usando un pequeño código numérico.
- Debido a que el número de caracteres que deben almacenarse es típicamente un número grande, y el número de bits necesarios para representar cada carácter de forma única es pequeño, los caracteres se suelen almacenar como enteros sin signo de 8 bits, con un rango de códigos de 0 a 255.
- 8 bits en una computadora se denomina un byte. Otro nombre común para este tipo de entero muy pequeño es char.
- Por ejemplo, el código ASCII para la letra mayúscula 'A' es 65.
- Tenga en cuenta que el carácter '9' no es el mismo que el valor entero 9.
- En este caso el código ASCII para el carácter '9' es 57.
- El valor numérico 9 en el conjunto de código ASCII representa un carácter de pestaña horizontal.
- Aunque el tipo de datos char se utiliza más comúnmente para mantener códigos que representan caracteres alfabéticos, técnicamente es un pequeño entero, y muchos lenguajes permiten que los caracteres se usen y manipulen como cualquier otro entero. ( E.g. multiplicación, adición, etc. )
- Con el fin de apoyar una amplia variedad de símbolos especiales, como se puede encontrar en idiomas extranjeros, matemáticas, ciencias, gráficos de caracteres, o en cualquier otro lugar, Java y algunos otros idiomas de apoyo caracteres anchos, ( wchars ), que tiene 16 bits en lugar de 8.
- Se ha dicho que cada lenguaje conocido, tanto actual como histórico, puede ser reprendido por 16-bit Unicodes .
Cadenas de caracteres
- La mayoría de los lenguajes informáticos modernos tienen algunos medios de representar cadenas de caracteres, es decir. colecciones de caracteres como palabras o oraciones, así como una biblioteca de métodos para manipular esas cadenas.
- Por ejemplo:
- C tradicional almacena cadenas de caracteres como arrays de caracteres, terminado por un byte nulo. También son comúnmente manipulados usando punteros a los personajes.
- Tanto C++ como Java definen cadena clases .
Punteros
- Los punteros son variables que sostienen la dirección de donde se almacenan otros datos o código.
- Los punteros se utilizan para acceder indirectamente a los ítems apuntados por los punteros.
- Las variables punteros se pueden cambiar, para apuntar a otras ubicaciones.
Tipos de datos compuestos
Los tipos de datos compuestos son colecciones o agrupaciones de múltiples elementos de datos en una sola entidad. Diferentes idiomas proporcionan soporte para diferentes tipos de tipos de datos compuestos.
Arrays
- Las matrices son colecciones de elementos de datos todos los que tienen el mismo tipo de datos, a los que se accede utilizando un nombre común y un índice entero.
- En teoría, los arrays pueden tener cualquier ( positivo ) número de dimensiones, utilizando un índice adicional para cada nueva dimensión. En la práctica, la mayoría de los idiomas reales imponen algún tipo de límite a las dimensiones del array, aunque el límite es generalmente mucho más alto que un programa bien escrito debería usar.
- En Matlab la matriz es el tipo de datos básicos, por lo que incluso un solo número se considera como una matriz de 1 x 1.
- En los arrays C y C++ se accede indirectamente, utilizando la aritmética del puntero relativa a la dirección donde se almacena el comienzo de la array.
Estructuras
- Estructuras, (llamadas structs en C/C++ ), son colecciones de elementos de datos de los mismos o diferentes tipos, cada uno con un nombre único dentro de la colección, y al que se accede usando esos nombres.
- Por ejemplo, una estructura que representa un libro podría tener variables de cadena para el título y autor, variables enteras para el número de página actual y el número total de páginas, y un valor de punto flotante para su costo.
Sindicatos
- Los sindicatos son muy parecidos a las estructuras, excepto que sólo reservan suficiente espacio para el elemento de datos más grande contenido, que luego es compartido por todos los campos definidos dentro de la unión.
Clases
- Las clases también son muy similares a las estructuras, excepto que además de los datos, también contienen las funciones (métodos ) asociados con los datos. Las clases se pueden ver de dos maneras diferentes pero igualmente valiosas:
- Una recopilación de datos relacionados que representan a una entidad, además de los métodos asociados necesarios para mantener y manipular esos datos.
Artículos Relacionados: