lunes, 24 de septiembre de 2007

Sistema de Unidades Binarias

Todos se habrán preguntado alguna vez de dónde han surgido los nombres utilizados para medir la cantidad de información almacenada y transmitida por medios digitales, y los respectivos múltiplos de estas unidades. Las palabras bit y byte, por ejemplo y sus prefijos como mega, giga o tera.


BIT
Empecemos por el principio, el término 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.

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 cualesquiera, como verdadero o falso, abierto o cerrado, abajo o arriba, norte o sur, masculino o femenino, etc. Basta con asignar uno de esos valores al estado de "apagado" (0), y el otro al estado de "encendido" (1).

El concepto de bit está asociado a un simple circuito electrónico, el cual puede estar abierto o cerrado, haciendo corresponder el estado cerrado al valor 1 y el estado abierto al valor 0. Los aspectos técnicos de esta asociación lo dejamos para otra oportunidad.


Origen del término bit
Fue Claude E. Shannon, creador de la Teoría de la Información, quien usó la palabra bit por primera vez en un trabajo académico de 1948. Él atribuyó su origen a John W. Tukey, que había escrito una nota en los laboratorios Bell el 9 de enero de 1947 en la cual contrajo las palabras binary digit a simplemente "bit". Curiosamente, Vannevar Bush, integrante del equipo que construyó la primera bomba atómica y también en el desarrollo de las primitivas computadoras, había escrito en 1936 sobre los "bits de información" que podían ser almacenados en las tarjetas perforadas usadas en las computadoras mecánicas de ese tiempo. Hay que recordar que la palabra bit originalmente en inglés significa “pedazo”, “pizca”, etc.

Combinaciones de bits
Con un bit podemos representar solamente dos valores. Para representar o codificar más información en un dispositivo digital, necesitamos una mayor cantidad de bits. En general, con n número de bits pueden representarse hasta 2^n valores diferentes.



A través de secuencias de bits, se puede codificar cualquier valor discreto como números, palabras, e incluso imágenes. Cuatro bits forman un nibble, y pueden representar hasta 2^4 = 16 valores diferentes; ocho bits forman un octeto, y se pueden representar hasta 2^8 = 256 valores diferentes.

Nota: Un byte y un octeto no son la misma cosa. Mientras que un octeto siempre tiene 8 bits, un byte contiene un número fijo de bits, que no necesariamente son 8. En los computadores antiguos, el byte podría estar conformado por 6, 7, 8 ó 9 bits. Hoy en día, en la inmensa mayoría de los computadores, y en la mayoría de los campos, un byte tiene 8 bits, siendo equivalente al octeto, pero hay excepciones.

Bits más y menos significativos
Un conjunto de bits, como por ejemplo un byte, representa un conjunto de elementos ordenados. Se llama bit más significativo (MSB: More Significant Bit) al bit que tiene mayor valor dentro del conjunto; análogamente, se llama bit menos significativo (LSB: Less Significant Bit) al bit que tiene menor valor dentro del conjunto. En un byte, el bit más significativo es el de la posición 7, y el menos significativo es el de la posición 0. En cualquier caso, el bit más significativo es el del extremo izquierdo y el menos significativo el del extremo derecho.

BYTE
Voz inglesa, se pronuncia bait, 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.

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 una computadora, desde seis a nueve bits. 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).


Historia
El término byte fue acuñado por Werner Buchholz en 1957 durante las primeras fases de diseño de la IBM 7030. Originalmente fue definido en instrucciones de 4 bits. Los equipos típicos de E/S de este periodo utilizaban unidades de seis bits. Un tamaño fijo de byte de 8 bits se adoptó posteriormente y se promulgó como un estándar por el IBM S/360. El término byte viene de bite (en inglés "mordisco"), como la cantidad más pequeña de datos que una computadora podía "morder" a la vez, pero se forma de la expresión binary term. El cambio de letra no solo redujo la posibilidad de confundirlo con "bit", sino que también era consistente con la afición de los primeros científicos en computación en crear palabras y cambiar letras.

Los primeros microprocesadores, como el Intel 8008 (el predecesor directo del 8080 y el Intel 8086) podían realizar un número pequeño de operaciones en 4 bits, como la instrucción DAA (ajuste decimal) y la bandera half carry que eran utilizados para implementar rutinas de aritmética decimal. Estas cantidades de cuatro bits se llamaron "nibble" (“mordisquito”, “bocado”) para contrastarlo con byte (mordisco) y con bit (pizca).

Little Endian y Big Endian
En las computadoras cada byte se identifica con su posición en la memoria (dirección). Cuando se manejan números de más de un byte, éstos también deben estar ordenados. Este aspecto es particularmente importante en la programación en código máquina, ya que algunas máquinas consideran el byte situado en la dirección más baja el menos significativo (arquitecura Little Endian, como los procesadores Intel) mientras que otras consideran que ése es el más significativo (arquitectura Big Endian, como los procesadores Motorola). De este modo, un byte con el número decimal 27 se almacenaría en una máquina Little Endian igual que en una máquina Big Endian, ya que sólo ocupa un byte. Sin embargo, para números más grandes los bytes que los representan se almacenarían en distinto orden en cada arquitectura. Por ejemplo, consideremos el número hexadecimal entero AABBCCDD, de 32 bits (4 bytes), localizado en la dirección 100 de la memoria. El número ocuparía las posiciones desde la 100 a la 103, pero dependiendo de si la máquina es little o big endian, los bytes se almacenarían de diferente manera:


Palabras alternativas
Los bytes de 8 bits a menudo se llaman octetos en contextos formales como los estándares industriales, así como en redes de computadoras y telecomunicaciones para evitar confusiones sobre el número de bits implicados. Sin embargo, los bytes de 8 bits se integran firmemente en estándares comunes como Ethernet y HTML. Un octeto es también la palabra utilizada por la cantidad de ocho bits en muchos lenguajes no ingleses.


No hay comentarios:

Publicar un comentario