Bytes

Byte

Byte (pronunciada [bajt] o ['bi.te]) 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. Originalmente el byte fue elegido para ser un submúltiplo del tamaño de palabra de un ordenador, desde cinco a doce bits. La popularidad de la arquitectura IBM S/360 que empezó en los años 1960 y la explosión de las microcomputadorasbasadas 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).

La unidad byte no tiene símbolo establecido internacionalmente, aunque en países anglosajones es frecuente la "B" mayúscula, mientras que en los francófonos es la "o" minúscula (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 bits).

La palabra "byte" tiene numerosos significados íntimamente relacionados:

  1. 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.

  2. 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 6000de 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 bits 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 Unisys) direccionaban los campos de datos de 6 bits y en modo ASCII de 9 bits modes con su palabra de 36 bits.

Historia

El término byte fue acuñado por Waner Buchholz en 1957 durante las primeras fases de diseño del IBM 7030 Stretch. Originalmente fue definido en instrucciones de 4 bits, permitiendo desde uno hasta dieciséis bits en un byte (el diseño de producción redujo este hasta campos de 3 bits, permitiendo desde uno a ocho bits en un byte). 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 un ordenador podía "morder" a la vez. 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. Sin embargo, en los años 1960, en el Departamento de Educación de IBM del Reino Unido se enseñaba que un bit era un Binary digIT y un byte era un BinarY TuplE. Un byte también se conocía como "un byte de 8 bits", reforzando la noción de que era una tupla de n bits y que se permitían otros tamaños.

  1. Es una secuencia contigua de bits binarios en un flujo de datos serie, como en comunicaciones por módem o satélite, o desde un cabezal de disco duro, que es la unidad de datos más pequeña con significado. Estos bytes pueden incluir bits de inicio, parada o paridad y podrían variar de 7 a 12 bits para contener un código ASCII de 7 bits sencillo.

  2. Es un tipo de datos o un sinónimo en ciertos lenguajes de programación. C, por ejemplo, define byte como "unidad de datos de almacenamiento direccionable lo suficientemente grande para albergar cualquier miembro del juego de caracteres básico del entorno de ejecución" (cláusula 3.6 del C estándar). En C el tipo de datos tiene que al menos ser capaz de representar 256 valores distintos (cláusula 5.2.4.2.1). La primitiva de Java está siempre definida con 8 bits siendo un tipo de datos con signo, tomando valores entre –128 y 127.

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 el flag "half carry" que eran utilizados para implementar rutinas de aritmética decimal. Estas cantidades de cuatro bits se llamaron "nibbles" en honor al equivalente de 8 bits "bytes".

Palabras alternativas

Los bytes de 8 bits a menudo se llaman "octetos" en contextos formales como los estándares industriales, así como en redes informáticas 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 para la cantidad de ocho bits en muchos lenguajes no ingleses.

La mitad de un byte de ocho bits se llama nibble o un dígito hexadecimal. El nibble a menudo se llama semiocteto en redes o telecomunicaciones y también por algunas organizaciones de estandarización. Además, una cantidad de 2 bits se llama crumb, aunque raramente se utiliza.

Abreviaturas y símbolos

El IEEE 1541, el MIXF y la Real Academia Española1 especifican "B" como el símbolo para el byte (por ejemplo, MB significa megabyte), mientras que el IEC 60027 permanece en silencio en este tema. Además, B significa bel, una unidad logarítmica utilizada en el mismo campo.

El IEEE 1541 especifica "b" (minúscula) como el símbolo para bit; sin embargo la IEC 60027 y el MIXF especifican "bit" (por ejemplo Mbit para megabit), teniendo la máxima desambiguación posible de byte. "b" vs. "B": la confusión parece ser suficientemente común para haber inspirado la creación de una página web dedicada b no es B.

Los países francófonos utilizan una "o" minúscula para "octeto": es posible referirse a estas unidades indistintamente como ko, Mo, o kB, MB. Esto no se permite en el SI por el riesgo de confusión con el cero, aunque esa es la forma empleada en la versión francesa del estándar ISO/IEC 80000-13:2008.

Nombres para diferentes unidades

Los prefijos usados para medidas de byte normalmente son los mismos que los prefijos del SIutilizados para otras medidas, pero tienen valores ligeramente distintos. Se basan en potencias de 1024 (210), un número binario conveniente, mientras que los prefijos del SI se basan en potencias de 1000 (103), un número decimal conveniente. La tabla inferior ilustra estas diferencias. Ver Prefijo binariopara una discusión mayor.

En 1998 fue creado un nuevo sistema de prefijos para denotar múltiplos binarios por la IEC. Oficialmente, el padrón IEC especifica que los prefijos del SI son usados solamente para múltiplos en base 10 (Sistema decimal) y nunca base 2 (Sistema binario).

La información fraccional normalmente se mide en bits, nibbles, nats o bans, donde las últimas dos se utilizan especialmente en el contexto de la teoría de la información y no se utilizan en otros campos de la computación.