viernes, 11 de septiembre de 2015

REPRESENTACION DE DATOS

Bit
Un Bit es el acrónimo de Binary digit (dígito binario). Un bit es un dígito del sistema de numeración binario. Un sistema de numeración es un conjunto de símbolos y reglas de generación que permiten construir todos los números válidos y el sistema binario, en matemáticas e informática, es un sistema de numeración en el que los números se representan utilizando solamente las cifras cero y uno (0 y 1).
En pocas palabras, y como ya muchos sospechan: las computadoras solo entienden 0 y 1. Esto se debe principalmente a que trabajan con voltajes internos: encendido = 1 y apagado = 0.
Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1.
El bit es la unidad mínima de información empleada en informática, en cualquier dispositivo digital, o en la teoría de la información. Con él, podemos representar dos valores cuales quiera, como verdadero o falso, abierto o cerrado, blanco o negro, norte o sur, masculino o femenino, rojo o azul, etc. Basta con asignar uno de esos valores al estado de “apagado” (0), y el otro al estado de “encendido” (1).

Cuando se habla de CPUs o microprocesadores de 4, 8, 16, 32, 64 bits, se refiere al tamaño, en número de bits, que tienen los registros internos del procesador y también a la capacidad de procesamiento de la Unidad aritmético lógica (ALU). Un microprocesador de 4 bits tiene registros de 4 bits y la ALU hace operaciones con los datos en esos registros de 4 bits, mientras que un procesador de 8 bits tiene registros y procesa los datos en grupos de 8 bits.
Los procesadores de 16, 32 y 64 bits tienen registros y ALU de 16, 32 y 64 bits respectivamente, y generalmente pueden procesar los datos, tanto en el tamaño en bits de sus registros como, dependiendo que su diseño lo permita, en determinados submúltiplos de éstos.
Cuando se habla de procesadores de, digamos 32 bits, nos referimos a su capacidad de procesar datos en hasta 32 bits simultáneamente (también puede procesar datos en 8 y 16 bits). La denominación de “microprocesador de 32 bits” no se refiere al tamaño del bus de datos del CPU ni del bus de direcciones, sino a su capacidad de trabajar normalmente con los datos en el número máximo de bits (salvo alguna excepción).

Byte
Un Byte u octeto, es una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido.
Se usa comúnmente como unidad básica de almacenamiento de datos en combinación con los prefijos de cantidad.
Así que tenemos que un byte = 8 bits

Kilobyte (kB)
El kB es una unidad de almacenamiento de información que equivale a 103 bytes. El término kilobyte y el símbolo kB se han utilizado históricamente para hacer referencia tanto a 1024 (210) bytes como a 1000 (103) bytes, dependiendo del contexto, en los campos de la informática y de la tecnología de la información.
En los inicios de la informática, las unidades se mostraban como múltiplos de 1000, pero en los años 60 se empezó a confundir 1000 con 1024, puesto que la memoria de los ordenadores trabaja en base binaria y no decimal. Sin embargo, etimológicamente es incorrecto utilizar estos prefijos (de base decimal) para nombrar múltiplos en base binaria. Como ocurre en el caso del kilobyte, a pesar de que 1024 se aproxime a 1000.
Kibibyte
Un kibibyte (contracción de kilobyte binario) es una unidad de información o almacenamiento de datos. Corresponde a 210 bytes, es decir 1024 bytes. Se representa con el símbolo KiB con K mayúscula.

Megabyte (MB)
El megabyte (MB) o megaocteto (Mo) es una unidad de medida de cantidad de datos informáticos. Es un múltiplo del byte u octeto, que equivale a 106 B (un millón de bytes). Se representa por MB y no por Mb, cuya correspondencia equivaldría a megabit. Coloquialmente a los megabytes se les denomina megas.
Es la unidad más típica actualmente, junto al múltiplos inmediatamente superior, el gigabyte, usándose para especificar la capacidad de la memoria RAM, de las memorias de tarjetas gráficas, de los CD-ROM, o el tamaño de los programas, de los archivos grandes, etc. La capacidad de almacenamiento se mide habitualmente en gigabytes, es decir, en miles de megabytes.
Mebibyte
Un mebibyte (contracción de megabyte binario) o, en su forma abreviada, MiB, es una unidad de información o memoria cuyo valor es de 220 equivalente a 1.048.576 bytes.

Gigabyte (GB)
Un gigabyte es una unidad de almacenamiento de información cuyo símbolo es el GB, equivale a 109 bytes. Esta es una unidad de almacenamiento
muy usada hoy en día en discos duros y unidades SSD, por ejemplo un disco duro de 500 GB o una unidad SSD de 120 GB de capacidad.
Gibibyte
Un gibibyte (contracción de gigabyte binario) es una unidad de información o almacenamiento de datos. Corresponde a 230 bytes, es decir 1.073.741.824 bytes. Se representa con el símbolo GiB.

Terabyte (TB)
Un terabyte es una unidad de almacenamiento de información cuyo símbolo es el TB, y equivale a 1012 bytes. Adoptado en 1960, el prefijo tera viene del significado griego “monstruo o bestia”.
1 TB = 103 GB = 106 MB = 109 kB = 1012 bytes
Tebibyte
Tebibyte es una unidad de almacenamiento de información. Corresponde a 240 bytes, es decir 1.099.511.627.776 bytes. Se representa con el símbolo TiB. El empleo del prefijo “tebi” (tera binario) se debe a que es la potencia de 2 que más se aproxima a “tera”, prefijo cuyo valor es 1012, es decir, 1.000.000.000.000.

Petabyte (PB)
Un petabyte es una unidad de almacenamiento de información cuyo símbolo es el PB, y equivale a 1015 bytes = 1.000.000.000.000.000 de bytes. El prefijo peta viene del significado griego “cinco”, pues equivale a 10005 ó 1015. Está basado en el modelo de tera, que viene del griego ‘monstruo’.
Como ejemplo de esta unidad podemos mencionar Google, quien procesa sobre 20 petabytes de datos cada día (posiblemente más); filmar la vida de una persona (100 años) en alta definición (10 megapíxels, 50 fotogramas por segundo) ocuparía 0,5 petabytes. Facebook tiene 60 mil millones de imágenes, lo que supone 1,5 petabytes de almacenamiento y crece a un ritmo de 220 millones de imágenes por semana.
Estos ejemplos nos dan una idea de lo que es un petabyte!
Pebibyte
Pebibyte es la denominación de una Unidad de almacenamiento de información. Corresponde a 250 bytes, es decir, 1.125.899.906.842.624 bytes. Se representa con el símbolo PiB. El empleo del prefijo «pebi» (peta binario) se debe a que es la potencia de 2 que más se aproxima a “peta”, prefijo cuyo valor es 1015, es decir, 1.000.000.000.000.000.

Exabyte (EB)
Un exabyte es una unidad de medida de almacenamiento de información cuyo símbolo es el EB, equivale a 1018bytes. El prefijo viene adoptado en 1991 del griego, con significado “seis” (como hexa-), pues equivale a 10006.
Tomemos como ejemplo el tráfico anual que puede tener Internet, se estima entre 5 y 9 exabytes. Del mismo modo, el tamaño de Internet (entendido como almacenamiento digital global) se estima en cerca de 500 exabytes.

Zettabyte (ZB)
Un zettabyte es una unidad de almacenamiento de información cuyo símbolo es el ZB, equivale a 1021 bytes. El prefijo viene adoptado del latín “septem” en 1991, que significa siete (como hepta-), pues equivale a 10007.
Como ejemplo, se ha estimado que a finales del año 2010 se alcanzó la cifra de 1,2 ZB de datos almacenados (a nivel mundial).

Yottabyte (YB)
Un yottabyte es una unidad de almacenamiento de información cuyo símbolo es el YB, y equivale a 1024 bytes. Adoptado en 1991, el prefijo yotta viene del griego okto, que significa “ocho”.





CONCEPTOS DE HARDWARE Y SOFTWARE
REPRESENTACIÓN DE DATOS

Para entender la manera en que las computadoras procesan datos, es importante conocer cómo la computadora representa los datos. Las personas se comunican a través del habla combinando palabras en oraciones. El habla humana es análoga porque utiliza señales continuas que varían en fortaleza y calidad. Las computadoras son digitales, pues reconocen solo dos estados: encendido (on) y apagado (off). Esto es así porque las computadoras son equipos electrónicos que utilizan electricidad, que también tiene solo dos estados: on y off. Los dos dígitos 0 y 1 pueden fácilmente representar estos dos estados. El dígito cero representa el estado electrónico apagado (la ausencia de carga electrónica). El dígito uno representa el estado electrónico encendido (presencia de carga electrónica).

El sistema binario es un sistema numérico que tiene tan solo dos dígitos, 0 y 1, llamados bits. Un bit (binary digit) es la unidad de datos más pequeña que la computadora puede representar. Por sí solo, un bit no es muy informativo. Cuando ocho bits se agrupan como una unidad, forman un byte. El byte es informativo porque provee suficientes combinaciones diferentes de 0 y 1 para representar 256 caracteres individuales. Esos caracteres incluyen números, letras mayúsculas y minúsculas, signos de puntuación y otros.





Las combinaciones de 0 y 1 que representan caracteres son definidas por patrones llamados esquemas de códigos (coding scheme). Esquemas de códigos populares son:
1.    ASCII – American Standard Code for Information Interchange – es el sistema de código para representar datos que más se utiliza. La mayoría de las computadoras personales y servidores mid-range utilizan el esquema de código ASCII.
2.    EBCDIC – Extended Binary Coded Decimal Interchange Code – es utilizado principalmente en computadoras mainframe.
3.    Unicode – es el único esquema de código capaz de representar todos los lenguajes del mundo actual. Se desarrolló precisamente porque el ASCII y el EBCDIC no eran suficientes para representar lenguajes para alfabetos diferentes al inglés o Europeo, como los asiáticos y otros.

Hoy en día casi todos en el mundo están más o menos familiarizados con términos como megabyte, gigabytes, memoria, disco duro, etc. pero no todos están familiarizados con términos como petabyte, terabyte, SSD, etc. Todos hablamos de archivos, de lo que ocupan en nuestras computadoras, de lo que tardan las descargas en Internet, pero la verdad es que se desconoce (en muchos casos) como se almacena y distribuye esa información.

ESTRUCTURAS DE DATOS

Una estructura de datos es, a grandes rasgos, una colección de datos (normalmente de tipo simple) que se caracterizan por su organización y las operaciones que se definen en ellos. Por tanto, una estructura de datos vendrá caracterizada tanto por unas ciertas relaciones entre los datos que la constituyen (p.e., el orden de las componentes de un vector de números reales), como por las operaciones posibles en ella. Esto supone que podamos expresar formalmente, mediante un conjunto de reglas, las relaciones y operaciones posibles.

ESTRUCTURAS DE DATOS CONTIGUAS
Cadenas
Se define como una secuencia de caracteres que se interpretan como un dato único. Su longitud puede ser fija o variable por lo que, además de saber que están constituidas por caracteres alfanuméricos, hemos de conocer su longitud.

ARRAYS
Es un conjunto de datos del mismo tipo almacenados en la memoria del ordenador en posiciones adyacentes. Sus componentes individuales se llaman elementos y se distinguen entre ellos por el nombre del array seguido de uno o varios índices o subíndices. El número de elementos del array se específica cuando se crea éste, en la fase declarativa del programa, definiendo el número de dimensiones o número de índices del mismo y los límites máximo y mínimo que cada uno de ellos puede tomar, que llamaremos rango. Según sea este número, distinguiremos los siguientes tipos de arrays:

- Unidimensionales Vectores

- Bidimensionales (matrices)
Llamaremos matriz o tabla a un array bidimensional, esto es, un conjunto de elementos del mismo tipo en el que sus componentes vienen definidos por dos subíndices, el primero referido a la fila y el segundo a la columna. Además de las matrices, que utilizamos en álgebra lineal.

- MULTIDIMENSIONALES
Dependiendo del tipo de lenguaje, pueden existir arrays de tres o más dimensiones (por ejemplo FORTRAN 77 admite hasta siete dimensiones). Para el caso de tres dimensiones, la estructura puede visualizarse como un cubo, y para mayor número de dimensiones ésta visualización no es posible.
El tratamiento de estos arrays es similar al de las matrices, cada conjunto de índices individualiza un elemento de la estructura, que se almacena en memoria de forma secuencial.



ESTRUCTURAS DINAMICAS Y PUNTEROS
En muchas ocasiones es conveniente poder disponer de un método por el cual, podamos adquirir posiciones de memoria adicionales, a medida que las vayamos necesitando durante la ejecución y al contrario liberarlas cuando no se necesiten. Las variables y estructuras de datos que reúnen estas condiciones se llaman dinámicas y se representan con la ayuda de un nuevo tipo de dato, llamado puntero, que se define como un dato que indica la posición de memoria ocupada por otro dato. Los punteros proporcionan los enlaces de unión entre los elementos, permitiendo que, durante la ejecución del programa, las estructuras dinámicas puedan cambiar sus tamaños. En las estructuras dinámicas estos elementos, llamados nodos, son normalmente registros de al menos dos campos, donde por lo menos uno de ellos, es un puntero.
La utilización de punteros permite que sea relativamente fácil añadir indeterminadamente nuevos datos, insertar nuevos nodos en otros ya existentes y en general modificar estas estructuras. Dependiendo de las relaciones entre los nodos de la estructura hablaremos de estructuras lineales y no lineales: si partiendo del nodo inicial es posible dirigirse sucesivamente a todos los nodos visitando cada uno una única vez diremos que es una estructura lineal; en caso de no ser posible el recorrido en estas condiciones se habla de estructura no lineal.

ESTRUCTURAS LINEALES
           
LISTAS ENLAZADAS
Estas listas están formadas por un conjunto de nodos, en los que cada elemento contiene un puntero con la posición o dirección del siguiente elemento de la lista, es decir su enlace.

PILAS
Una pila (stack) es una estructura lineal a cuyos datos sólo se puede acceder por un solo extremo, denominado tope o cima (top). En esta estructura sólo se pueden efectuar dos operaciones: añadir y eliminar un elemento, acciones que se conocen por meter (push), y sacar (pop). Por esta razón se dice que la pila es una estructura en la que el último en entrar es el primero en salir, en inglés, LIFO (last in first out).

COLAS
Vamos a definir cola, como una estructura lineal, en la que los datos entran por la parte de atrás y salen por la de delante. Una cola es una estructura en la que el primer dato en entrar es el primer dato en salir, es decir, una estructura FIFO (first in, first out).

ESTRUCTURAS NO LINEALES

ARBOLES
Un árbol es una estructura que implica una jerarquía, en la que cada elemento está unido a otros por debajo de él. Comparada con las estructuras lineales anteriores, el árbol tiene la particularidad de que cada elemento puede tener más de un “siguiente”, aunque un solo antecedente o padre.

Definiremos árbol, de forma recursiva, como un conjunto finito de uno o más nodos, de tal manera, que exista un nodo especial denominado raíz y los nodos restantes están divididos en conjuntos denominados subárboles, que también responden a la estructura de un árbol. Por extensión a la idea de árbol genealógico se habla de nodos padres y nodos hijo y un nodo, en la parte inferior del que no cuelgue ningún subárbol (no tiene ningún hijo) se denomina nodo terminal u hoja




No hay comentarios:

Publicar un comentario