jueves, 30 de octubre de 2008

LOS BYTES

¿ Cuantos caracteres caben en un MB ?
En un megabyte se podrían almacenar 1,048,576 caracteres1048576 caracteres....1 Byte equivale a 8 bits, y eso es lo q ocupa 1 caracter.Los múltiplos del Byte son el KByte (kilobyte) = 1024 Bytesy el MByte (megabyte) = 1024 KB = 1048576 Bytes.No es lo mismo q con las demás medidas donde 1K=1000 ya q 1000 no es potencia exacta de 2 y sí lo es 1024
Originalmente un caracter se almacenaba en lo que se conoce como un Byte, el cual es el conjunto de 8 bits, cada caracter tenía un número asociado que se representaba en base 2 (unos y ceros); como eran 8 bits (8 espacios) podíamos tener hasta 256 caractéres. Actualmente en un Byte se manejan más de 8 bits y por eso tenemos más de 256 caracteres. Un KB o KiloByte equivale a 1024 Bytes, es decir, 1024 caracteres; y un MB o MegaByte equivale a 1024 KB, es decir, 1024 x 1024 Bytes = 1,048,576 Bytes o caracteres. El 1024 se debe a que el 1000 no es múltiplo de 8, que era el espacio origial, de hecho se manejan múltiplos de 8, así tenemos Bytes de 16, 24 y 32 bits.Un MB corresponde a 1.024.000 bytes. Un BYTE equivale a 8 bits. Cada caracter equivale a un bit por consiguiente en un MB podras tener 1.024.000 caracteres.
Byte
Para la revista estadounidense de informática, véase Byte es una voz inglesa (pronunciada [bait] o ['bi.te]), que si bien la Real Academia Española ha aceptado como equivalente a octeto, es decir a ocho bits, para fines correctos, un byte debe ser considerado como una secuencia de bits contiguos, cuyo tamaño depende del código de información o código de caracteres en que sea definido. La unidad byte no tiene símbolo establecido internacionalmente, aunque en países anglosajones es frecuente B mientras que en los francófonos es o (de octet); la ISO y la IEC en la norma 80000-13:2008 recomiendan restringir el empleo de esta unidad a los octetos (bytes de 8 bit).
Se usa comúnmente como unidad básica de
almacenamiento de información en combinación con los prefijos de cantidad. Originalmente el byte fue elegido para ser un submúltiplo del tamaño de palabra de un ordenador, desde seis a nueve bits (un carácter codificado estaría adaptado a esta unidad). La popularidad de la arquitectura IBM S/360 que empezó en los años 1960 y la explosión de las microcomputadoras basadas en microprocesadores de 8 bits en los años 1980 ha hecho obsoleta la utilización de otra cantidad que no sean 8 bits. El término octeto se utiliza ampliamente como un sinónimo preciso donde la ambigüedad es indeseable (por ejemplo, en definiciones de protocolos).
Contenido[
ocultar]
1 Escala general
2 Significados
3 Historia
4 Palabras alternativas
5 Abreviaturas/Símbolos
6 Nombres para diferentes unidades
7 Véase también
//

Escala general [editar]
En
arquitectura de ordenadores, 8 bits es un adjetivo usado para describir enteros, direcciones de memoria u otras unidades de datos que comprenden hasta 8 bits de ancho, o para referirse a una arquitectura de CPU y ALU basadas en registros, bus de direcciones o bus de datos de ese ancho.
Nota: Excepto para elementos con fotos, los elementos se toman como colecciones de caracteres--letras, números y signos de puntuación--cada uno 1 byte. Un documento formateado ocupa mucho más espacio.
Tamaño
Capacidad de almacenamiento aproximada
1 B
Una letra
10 B
Una o dos palabras
100 B
Una o dos frases
1
kB
Una historia muy corta
10 kB
Una página de enciclopedia (tal vez con un dibujo simple)
100 kB
Una fotografía de resolución mediana
1
MB
Una novela
10 MB
Dos copias de la obra completa de Shakespeare
100 MB
1 metro de libros en estantería
1
GB
Una furgoneta llena de páginas con texto
1
TB
50.000 árboles de papel
10 TB
La colección impresa de la biblioteca del congreso de
EE. UU.

Significados
La palabra "byte" tiene numerosos significados íntimamente relacionados:
Una secuencia contigua de un número de
bits fijo. La utilización de un byte de 8 bit ha llegado a ser casi ubicua.
Una secuencia contigua de bits en una computadora binaria que comprende el sub-campo direccionable más pequeño del tamaño de palabra natural de la computadora. Esto es, la unidad de datos binarios más pequeña en que la computación es significativa, o se pueden aplicar las cotas de datos naturales. Por ejemplo, la
serie CDC 6000 de mainframes científicas dividió sus palabras de 60 bits de punto flotante en 10 bytes de seis bits. Estos bytes convenientemente colocados forman los datos Hollerith de las tarjetas perforadas, típicamente el alfabeto de mayúsculas y los dígitos decimales. El CDC también refiere cantidades de 12 bits como bytes, cada una albergando dos caracteres de 6 bits, debido a la arquitectura de E/S de 12 bits de la máquina. El PDP-10 utilizaba instrucciones de ensamblado de 12 bits LDB y DPB para extraer bytes—estas operaciones sobreviven hoy en el Common Lisp. Los bytes de 6, 7 ó 9 bites se han utilizado en algunas computadoras, por ejemplo en las palabras de 36 bits del PDP-10. Los ordenadores del UNIVAC 1100/2200 series (ahora Unisysdireccionaban los campos de datos de 6 bits y en modo ASCII de 9 bits modes con su palabra de 36 bits.
Terabyte
Un Terabyte es una unidad de medida informática cuyo símbolo es el TB, y puede equivalerse a 240 bytes o a 1012 bytes.
Confirmado en 1960, viene del griego τέρας, que significa monstruo.
Debido a irregularidades en la definición y uso del
kilobyte, el número exacto de bytes en un terabyte en la práctica, podría ser cualquiera de los siguientes valores:
12000.0001000.000 bytes - 1012, un billón. Esta definición es la que se usa en el contexto general cuando se refiere a almacenamiento en
discos, redes u otro hardware.
12099.5111627.776 bytes - 10244 ó 240. Esto es 1024 veces un
gigabyte (un gigabyte 'binario'). Esta es la definición más usada en las ciencias de la computación (computer science) y en programación (computer programming) y, la mayor parte del software, emplea también esta definición.
1024 terabytes equivalen a un
petabyte

Diferencia entre 1000 y 1024 Terabyte [editar]
Para clarificar la diferencia entre los prefijos decimal y binario la
Comisión Internacional de Electrotécnica (IEC), una corporación estándar, definió en 1998 nuevos prefijos usando la combinación del Sistema Internacional de Medidas prefijo SI con la palabra "binary" (vea prefijo binario), así que si nos referimos a binario, éste es nombrado por la IEC como tebibyte (TiB) mientras que si nos referimos a decimal entonces la IEC lo llama terabyte. Cabe decir que esta nomenclatura no ha sido aún ampliamente adoptada.
Gigabyte
Para otros usos de este término, véase Gigabyte Technology.
Un gigabyte es una unidad de medida
informática cuyo símbolo es el GB, y puede equivalerse a 230 bytes o a 109 bytes, según el uso.
Como resultado de esta confusión, el término "gigabyte" resulta ambiguo, a no ser que se utilice un sólo dígito de precisión. Conforme aumenta la capacidad de almacenamiento y transmisión de los sistemas informáticos, se multiplica la diferencia entre los usos binario y decimal. El uso de la base binaria no obstante tiene ventajas durante el diseño de hardware y software. La
RAM se mide casi siempre en potencias de dos.
Un
Terabyte puede equivalerse a 1024 GB ó 1000 GB.
Contenido[
ocultar]
1 El uso de gigabytes
2 Distinción entre 1000 megabytes y 1024 megabytes
3 Etimología del prefijo
4 Véase también
5 Enlaces externos

El uso de gigabytes [editar]
Desde
1996, la mayoría de disco duro se miden en el rango de capacidades de gigabytes. El coste por gigabyte es de 0,40-0,65 ó 0,51-0,72 $.
En lenguaje coloquial, "gigabyte" se abrevia a menudo como giga, (por ejemplo: "Este disco es de 200 gigas").
El
gigabit, que no debe ser confundido con el gigabyte, es 1/8 de un gigabyte, puesto que está referido a bits en lugar de a bytes, y se abrevia como Gb (o Gbit) (nótese la letra b minúscula). Se usa principalmente para describir el ancho de banda
y la tasa de transmisión de un flujo de datos, (por ejemplo: la velocidad actual de los interfaces de fibra óptica es de 2 Gbit/s).

Megabyte
El Megabyte (MB) es una unidad de medida de cantidad de datos informáticos. Es un múltiplo del octeto, que equivale a 106 (1.000.000 octetos) o 220 (1.048.576 octetos), según el contexto. La primera definición es más acorde al prefijo mega-, mientras que la segunda es una cantidad más práctica desde el punto de vista informático. Para ésta es más acorde emplear el mebibyte. Como los dos números están relativamente cercanos, y confundir uno con otro ha llevado ocasionalmente a problemas.
Se representa por MB y no por Mb (que correspondería a
megabit) y coloquialmente se les denomina Megas. Es la unidad más típica actualmente, 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 almacenimiento se mide habitualmente en gigabytes, es decir, en miles de megabytes.
Se distingue del megabit (1.000.000 bits), con abreviación de Mbit o Mb (la "b" minúscula). Hay 8
bits en un octeto; por lo tanto, un megabyte (MB) es ocho veces más grande que un megabit
(Mb).

Kilobyte
Un kilobyte (pronunciado /kilobáit/) es una unidad de almacenamiento de información cuyo símbolo es el kB (a veces se utiliza KB), y puede equivaler a 210 bytes o a 103 bytes.
Las
PC de IBM más antiguas, por ejemplo, tenían una capacidad máxima de 640 KB en el sentido binario, o alrededor de 640 000 caracteres de datos.

El Sistema Internacional y el término byte [editar]
El término kilobyte se utilizó al principio debido a que 210 es aproximadamente 1000 (exactamente es 1024). Cuando las computadoras empezaron a ser cada vez más potentes, lamentablemente el mal uso del prefijo
SI se difundió desde la jerga de los profesionales de la computación al léxico popular, lo que creó mucha confusión, ya que realmente no se debería usar el término kilobyte, que significa exactamente ‘1000 bytes’ y no ‘1024 bytes’.
Se inventó
[1] entonces el término kibi, que significaría 1024, produciendo entonces la medida kibibyte (1 KiB=1024 bytes). Pero todavía no se ha difundido su uso. Dentro de este mismo paquete de unidades estaría el mebibyte (1 MiB = 220, similar al megabyte: 106 o millón) y el gibibyte (1 GiB = 230, similar al gigabyte: 109)
Algunos han sugerido que se debería utilizar el prefijo K con mayúsculas para distinguir esta cantidad del prefijo del
SI, pero este tema aún no se ha normalizado. Además esto no se podría extender a otros prefijos mayores, ya que por ejemplo en el caso del MB (megabyte), el SI ya utiliza tanto la M mayúscula (mega: millón) como la minúscula (mili: milésima).

Bit
Bit es el acrónimo de Binary digit. (dígito binario). Un bit es un dígito del sistema de numeración binario. La Real Academia Española (RAE) ha aceptado la palabra bit con el plural bits.
Mientras que en el sistema de numeración
decimal se usan diez dígitos, en el binario se usan sólo dos dígitos, el 0 y el 1. Un bit o dígito binario puede representar uno de esos dos valores, 0 ó 1.
Podemos imaginarnos un bit como una bombilla que puede estar en uno de los siguientes dos estados:
apagada
o encendida

Memoria de computadora de 1980 donde se pueden ver los bits físicos. Este conjunto de unos 4x4 cm. corresponden a 512 bytes.
El bit es la unidad mínima de almacenamiento 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).

programacion orientada a objetos

Programación orientada a objetos

La Programación Orientada a Objetos (POO u OOP según sus siglas en inglés es un paradigma de programacion que usa objetos y sus interacciones para diseñar aplicaciones y programas de computadora. Está basado en varias técnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento. Su uso se popularizó a principios de la década de 1990. Actualmente son muchos los lenguajes de programación que soportan la orientación a objetos.
Contenido.
1 Introducción
2 Origen
3 Conceptos fundamentales
4 Características de la POO
5 Lenguajes orientados a objetos


Introducción
Los objetos son entidades que combinan estado, comportamiento e identidad:
El estado está compuesto de datos, serán uno o varios atributos a los que se habrán asignado unos valores concretos (datos).
El comportamiento está definido por los procedimientos o métodos con que puede operar dicho objeto, es decir, qué operaciones se pueden realizar con él.
La identidad es una propiedad de un objeto que lo diferencia del resto, dicho con otras palabras, es su identificador (concepto análogo al de identificador de una
variable o una constante).
La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas y módulos más fáciles de escribir, mantener y reutilizar.
De esta forma, un objeto contiene toda la información que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases e incluso frente a objetos de una misma clase, al poder tener valores bien diferenciados en sus atributos. A su vez, los objetos disponen de mecanismos de interacción llamados
métodos que favorecen la comunicación entre ellos. Esta comunicación favorece a su vez el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan ni deben separarse el estado y el comportamiento.
Los métodos (comportamiento) y atributos (estado) están estrechamente relacionados por la propiedad de conjunto. Esta propiedad destaca que una clase requiere de métodos para poder tratar los atributos con los que cuenta. Elprogramador debe pensar indistintamente en ambos conceptos, sin separar ni darle mayor importancia a ninguno de ellos, hacerlo podría producir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen a las primeras por el otro. De esta manera se estaría realizando una
programación estructurada camuflada en un lenguaje de programación orientado a objetos.
Esto difiere de la
programación estructurada tradicional, en la que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. En la programación estructurada sólo se escriben funciones que procesan datos. Los programadores que emplean éste nuevo paradigma, en cambio, primero definen objetos para luego enviarles mensajes solicitándoles que realicen sus métodos por sí mismos.

Origen [editar]
Los conceptos de la programación orientada a objetos tienen origen en
Simula 67, un lenguaje diseñado para hacer simulaciones, creado por Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Al parecer, en este centro, trabajaban en simulaciones de naves, y fueron confundidos por la explosión combinatoria de cómo las diversas cualidades de diversas naves podían afectar unas a las otras. La idea ocurrió para agrupar los diversos tipos de naves en diversas clases de objetos, siendo responsable cada clase de objetos de definir sus propios datos y comportamiento. Fueron refinados más tarde en Smalltalk, que fue desarrollado en Simula en Xerox PARC (y cuya primera versión fue escrita sobre Basic) pero diseñado para ser un sistema completamente dinámico en el cual los objetos se podrían crear y modificar "en marcha" en lugar de tener un sistema basado en programas estáticos.
La programación orientada a objetos tomó posición como el estilo de programación dominante a mediados de los años ochenta, en gran parte debido a la influencia de
C++, una extensión del lenguaje de programación C. Su dominación fue consolidada gracias al auge de las Interfaces gráficas de usuario, para las cuales la programación orientada a objetos está particularmente bien adaptada. En este caso, se habla también de programación dirigida por eventos.
Las características de orientación a objetos fueron agregadas a muchos lenguajes existentes durante ese tiempo, incluyendo
Ada, BASIC, Lisp, Pascal, entre otros. La adición de estas características a los lenguajes que no fueron diseñados inicialmente para ellas condujo a menudo a problemas de compatibilidad y a la capacidad de mantenimiento del código. Los lenguajes orientados a objetos "puros", por otra parte, carecían de las características de las cuales muchos programadores habían venido a depender. Para saltar este obstáculo, se hicieron muchas tentativas para crear nuevos lenguajes basados en métodos orientados a objetos, pero permitiendo algunas características imperativas de maneras "seguras". El Eiffel de Bertrand Meyer fue un temprano y moderadamente acertado lenguaje con esos objetivos pero ahora ha sido esencialmente reemplazado por Java, en gran parte debido a la aparición de Internet, y a la implementación de la máquina virtual de Java en la mayoría de navegadores. PHP en su versión 5 se ha ido modificando y soporta una orientación completa a objetos, cumpliendo todas las características propias de la orientación a objetos.

Conceptos fundamentales [editar]
La programación orientada a objetos es una nueva forma de programar que trata de encontrar una solución a estos problemas. Introduce nuevos conceptos, que superan y amplían conceptos antiguos ya conocidos. Entre ellos destacan los siguientes:
Clase: definiciones de las propiedades y comportamiento de un tipo de objeto concreto. La instanciación es la lectura de estas definiciones y la creación de un objeto a partir de ellas, (de c a d), Es la facilidad mediante la cual la clase D ha definido en ella cada uno de los atributos y operaciones de C, como si esos atributos y operaciones hubiesen sido definidos por la misma D.
Objeto: entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos). Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.
Método: algoritmo asociado a un objeto (o a una clase de objetos), cuya ejecución se desencadena tras la recepción de un "mensaje". Desde el punto de vista del comportamiento, es lo que el objeto puede hacer. Un método puede producir un cambio en las propiedades del objeto, o la generación de un "evento" con un nuevo mensaje para otro objeto del sistema.
Evento: un suceso en el sistema (tal como una interacción del usuario con la máquina, o un mensaje enviado por un objeto). El sistema maneja el evento enviando el mensaje adecuado al objeto pertinente. También se puede definir como evento, a la reacción que puede desencadenar un objeto, es decir la acción que genera.
Mensaje: una comunicación dirigida a un objeto, que le ordena que ejecute uno de sus métodos con ciertos parámetros asociados al evento que lo generó.
Propiedad o atributo: contenedor de un tipo de datos asociados a un objeto (o a una clase de objetos), que hace los datos visibles desde fuera del objeto y esto se define como sus características predeterminadas, y cuyo valor puede ser alterado por la ejecución de algún método.
Estado interno: es una variable que se declara privada, que puede ser únicamente accedida y alterada por un método del objeto, y que se utiliza para indicar distintas situaciones posibles para el objeto (o clase de objetos). No es visible al programador que maneja una instancia de la clase.
Componentes de un objeto:atributos, identidad, relaciones y métodos.
Representación de un objeto: un objeto se representa por medio de una tabla o entidad que esté compuesta por sus atributos y funciones correspondientes.
En comparación con un lenguaje imperativo, una "variable", no es más que un contenedor interno del atributo del objeto o de un estado interno, así como la "función" es un procedimiento interno del método del objeto.

Características de la POO [editar]
Hay un cierto desacuerdo sobre exactamente qué características de un método de programación o lenguaje le definen como "orientado a objetos", pero hay un consenso general en que las características siguientes son las más importantes (para más información, seguir los enlaces respectivos):
Abstracción: Cada objeto en el sistema sirve como modelo de un "agente" abstracto que puede realizar trabajo, informar y cambiar su estado, y "comunicarse" con otros objetos en el sistema sin revelar cómo se implementan estas características. Los procesos, las funciones o los métodos pueden también ser abstraídos y cuando lo están, una variedad de técnicas son requeridas para ampliar una abstracción.
Encapsulamiento: Significa reunir a todos los elementos que pueden considerarse pertenecientes a una misma entidad, al mismo nivel de abstracción. Esto permite aumentar la cohesión de los componentes del sistema. Algunos autores confunden este concepto con el principio de ocultación, principalmente porque se suelen emplear conjuntamente.
Principio de ocultación: Cada objeto está aislado del exterior, es un módulo natural, y cada tipo de objeto expone una interfaz a otros objetos que especifica cómo pueden interactuar con los objetos de la clase. El aislamiento protege a las propiedades de un objeto contra su modificación por quien no tenga derecho a acceder a ellas, solamente los propios métodos internos del objeto pueden acceder a su estado. Esto asegura que otros objetos no pueden cambiar el estado interno de un objeto de maneras inesperadas, eliminando efectos secundarios e interacciones inesperadas. Algunos lenguajes relajan esto, permitiendo un acceso directo a los datos internos del objeto de una manera controlada y limitando el grado de abstracción. La aplicación entera se reduce a un agregado o rompecabezas de objetos.
Polimorfismo: comportamientos diferentes, asociados a objetos distintos, pueden compartir el mismo nombre, al llamarlos por ese nombre se utilizará el comportamiento correspondiente al objeto que se esté usando. O dicho de otro modo, las referencias y las colecciones de objetos pueden contener objetos de diferentes tipos, y la invocación de un comportamiento en una referencia producirá el comportamiento correcto para el tipo real del objeto referenciado. Cuando esto ocurre en "tiempo de ejecución", esta última característica se llama asignación tardía o asignación dinámica. Algunos lenguajes proporcionan medios más estáticos (en "tiempo de compilación") de polimorfismo, tales como las plantillas y la sobrecarga de operadores de C++.
Herencia: las clases no están aisladas, sino que se relacionan entre sí, formando una jerarquía de clasificación. Los objetos heredan las propiedades y el comportamiento de todas las clases a las que pertenecen. La herencia organiza y facilita el polimorfismo y el encapsulamiento permitiendo a los objetos ser definidos y creados como tipos especializados de objetos preexistentes. Estos pueden compartir (y extender) su comportamiento sin tener que volver a implementarlo. Esto suele hacerse habitualmente agrupando los objetos en clases y estas en árboles o enrejados que reflejan un comportamiento común. Cuando un objeto hereda de más de una clase se dice que hay herencia múltiple.

Lenguajes orientados a objetos
Entre los lenguajes orientados a objetos se destacan los siguientes:
ABAP
ActionScript
ActionScript 3
Ada
C++
C#
Clarion
Lenguaje de programación D
Object Pascal (Delphi)
Flex builder (adobe)
Gambas
Harbour
Eiffel
Java
JavaScript (la herencia se realiza por medio de la programación basada en prototipos)
Lexico (en castellano)
Objective-C
Ocaml
Oz
Lenguaje de programación R
Perl (soporta herencia múltiple. La resolución se realiza en preorden, pero puede modificarse al algoritmo C3 por medio del módulo Class::C3 en CPAN)
PHP (en su versión 5)
Python
Ruby
Smalltalk
Magik (SmallWorld)
VB.NET
Visual FoxPro (en su versión 6)
Visual Basic
XBase++
Muchos de estos lenguajes de programación no son puramente orientados a objetos, sino que son híbridos que combinan la POO con otros paradigmas.
Al igual que C++ otros lenguajes, como
OOCOBOL, OOLISP, OOPROLOG y Object REXX, han sido creados añadiendo extensiones orientadas a objetos a un lenguaje de programación clásico.
Un nuevo paso en la abstracción de paradigmas de programación es la
Programación Orientada a Aspectos (POA). Aunque es todavía una metodología en estado de maduración, cada vez atrae a más investigadores e incluso proyectos comerciales en todo el mundo.