Byte
El byte es una unidad de información digital que normalmente consta de ocho bits. Históricamente, el byte era la cantidad de bits utilizados para codificar un solo carácter de texto en una computadora y, por esta razón, es la unidad de memoria direccionable más pequeña en muchas arquitecturas de computadora. Para eliminar la ambigüedad de los bytes de tamaño arbitrario de la definición común de 8 bits, los documentos de protocolo de red como el Protocolo de Internet (RFC 791) se refieren a un byte de 8 bits como un octeto. Esos bits en un octeto generalmente se cuentan con una numeración de 0 a 7 o de 7 a 0, según el bit endian. El primer bit es el número 0, lo que hace que el octavo bit sea el número 7.
Históricamente, el tamaño del byte ha dependido del hardware y no existían estándares definitivos que exigieran el tamaño. Se han utilizado tamaños de 1 a 48 bits. El código de caracteres de seis bits era una implementación de uso frecuente en los primeros sistemas de codificación, y las computadoras que usaban bytes de seis y nueve bits eran comunes en la década de 1960. Estos sistemas a menudo tenían palabras de memoria de 12, 18, 24, 30, 36, 48 o 60 bits, correspondientes a 2, 3, 4, 5, 6, 8 o 10 bytes de seis bits. En esta era, las agrupaciones de bits en el flujo de instrucciones a menudo se denominaban sílabas o losa, antes de que el término byte se volviera común.
El estándar moderno de facto de ocho bits, como se documenta en ISO/IEC 2382-1:1993, es una conveniente potencia de dos que permite los valores codificados en binario de 0 a 255 para un byte: 2 elevado a 8 es 256. La norma internacional IEC 80000-13 codificó este significado común. Muchos tipos de aplicaciones usan información representable en ocho o menos bits y los diseñadores de procesadores normalmente optimizan para este uso. La popularidad de las principales arquitecturas informáticas comerciales ha contribuido a la aceptación generalizada del byte de 8 bits. Las arquitecturas modernas suelen utilizar palabras de 32 o 64 bits, construidas con cuatro u ocho bytes, respectivamente.
El símbolo de unidad para el byte fue designado como la letra B mayúscula por la Comisión Electrotécnica Internacional (IEC) y el Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). Internacionalmente, la unidad octeto, símbolo o, define explícitamente una secuencia de ocho bits, eliminando la posible ambigüedad del término "byte".
Etimología e historia
El término byte fue acuñado por Werner Buchholz en junio de 1956, durante la primera fase de diseño de la computadora IBM Stretch, que tenía instrucciones de direccionamiento al bit y longitud de campo variable (VFL) con un byte. tamaño codificado en la instrucción. Es una grafía deliberada de bite para evitar una mutación accidental a bit.
Otro origen de byte para grupos de bits más pequeños que el tamaño de palabra de una computadora, y en particular grupos de cuatro bits, está registrado por Louis G. Dooley, quien afirmó haber acuñado el término mientras trabajaba con Jules Schwartz y Dick Beeler en un sistema de defensa aérea llamado SAGE en el Laboratorio Lincoln del MIT en 1956 o 1957, que fue desarrollado conjuntamente por Rand, MIT e IBM. Más tarde, el lenguaje JOVIAL de Schwartz usó el término, pero el autor recordó vagamente que se derivaba de AN/FSQ-31.
Las primeras computadoras usaban una variedad de representaciones decimales codificadas en binario (BCD) de cuatro bits y los códigos de seis bits para patrones gráficos imprimibles comunes en el ejército de los EE. UU. (FIELDATA) y la Marina. Estas representaciones incluían caracteres alfanuméricos y símbolos gráficos especiales. Estos conjuntos se ampliaron en 1963 a siete bits de codificación, llamados Código estándar estadounidense para el intercambio de información (ASCII) como el Estándar federal de procesamiento de información, que reemplazó los códigos de teleimpresora incompatibles en uso por diferentes ramas del gobierno y las universidades de los EE. UU. durante la década de 1960. ASCII incluía la distinción de alfabetos en mayúsculas y minúsculas y un conjunto de caracteres de control para facilitar la transmisión del lenguaje escrito, así como las funciones del dispositivo de impresión, como el avance de página y el salto de línea, y el control físico o lógico del flujo de datos sobre la transmisión. medios de comunicación. A principios de la década de 1960, mientras también participaba activamente en la estandarización ASCII, IBM introdujo simultáneamente en su línea de productos System/360 el Código de intercambio decimal codificado en binario extendido (EBCDIC) de ocho bits, una expansión de su código decimal codificado en binario de seis bits (BCDIC).) representaciones utilizadas en perforaciones de tarjetas anteriores. La prominencia del System/360 condujo a la adopción generalizada del tamaño de almacenamiento de ocho bits, mientras que en detalle los esquemas de codificación EBCDIC y ASCII son diferentes.
A principios de la década de 1960, AT&T introdujo la telefonía digital en líneas troncales de larga distancia. Estos utilizaron la codificación de ley μ de ocho bits. Esta gran inversión prometía reducir los costos de transmisión de datos de ocho bits.
El desarrollo de microprocesadores de ocho bits en la década de 1970 popularizó este tamaño de almacenamiento. Los microprocesadores como el Intel 8008, el predecesor directo del 8080 y el 8086, utilizados en las primeras computadoras personales, también podían realizar una pequeña cantidad de operaciones en los pares de cuatro bits en un byte, como el decimal-add-adjust (instrucción DAA). Una cantidad de cuatro bits a menudo se denomina nibble, también nybble, que se representa convenientemente por un solo dígito hexadecimal.
El término octeto se utiliza para especificar sin ambigüedades un tamaño de ocho bits. Se utiliza ampliamente en las definiciones de protocolo.
Históricamente, el término octad o octade también se utilizó para designar ocho bits, al menos en Europa Occidental; sin embargo, este uso ya no es común. El origen exacto del término no está claro, pero se puede encontrar en fuentes británicas, holandesas y alemanas de las décadas de 1960 y 1970, y en toda la documentación de las computadoras centrales de Philips.
Símbolo de unidad
El símbolo de unidad para el byte se especifica en IEC 80000-13, IEEE 1541 y el formato de intercambio métrico como el carácter B en mayúscula.
En el Sistema Internacional de Cantidades (ISQ), B es el símbolo del bel, una unidad de relación de potencia logarítmica que lleva el nombre de Alexander Graham Bell, creando un conflicto con la especificación IEC. Sin embargo, existe poco peligro de confusión, porque el bel es una unidad que rara vez se usa. Se usa principalmente en su fracción decádica, el decibelio (dB), para medir la fuerza de la señal y el nivel de presión del sonido, mientras que una unidad para una décima parte de un byte, el decibyte y otras fracciones, solo se usan en unidades derivadas, como como tasas de transmisión.
La letra minúscula o para octeto se define como el símbolo de octeto en IEC 80000-13 y se usa comúnmente en idiomas como el francés y el rumano, y también se combina con prefijos métricos para múltiplos, por ejemplo, ko y Mo.
Unidades de varios bytes
Unidades de múltiples bytes | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Órdenes de magnitud de los datos |
Existe más de un sistema para definir unidades más grandes basadas en el byte. Algunos sistemas se basan en potencias de 10; otros sistemas se basan en potencias de 2. La nomenclatura de estos sistemas ha sido objeto de confusión. Los sistemas basados en potencias de 10 utilizan de forma fiable los prefijos SI estándar (kilo, mega, giga,...) y sus símbolos correspondientes (k, M, G,...). Sin embargo, los sistemas basados en potencias de 2 pueden usar prefijos binarios (kibi, mebi, gibi,...) y sus símbolos correspondientes (Ki, Mi, Gi,...) o podrían usar los prefijos K, M y G, creando ambigüedad.
Si bien la diferencia numérica entre las interpretaciones decimal y binaria es relativamente pequeña para el kilobyte (alrededor de un 2 % más pequeño que el kibibyte), los sistemas se desvían cada vez más a medida que las unidades crecen (la desviación relativa crece un 2,4 % por cada tres órdenes de magnitud). Por ejemplo, un yottabyte basado en una potencia de 10 es aproximadamente un 17 % más pequeño que un yobibyte basado en una potencia de 2.
Unidades basadas en potencias de 10
La Comisión Electrotécnica Internacional (IEC) recomienda la definición de prefijos con potencias de 10, en la que 1 kilobyte (símbolo kB) equivale a 1000 bytes. El estándar IEC define ocho múltiplos de este tipo, hasta 1 yottabyte (YB), igual a 10008 bytes. Los prefijos adicionales ronna- para 10009 y quetta- para 100010 fueron adoptados por la Oficina Internacional de Pesos y Medidas (BIPM) en 2022.
Esta definición se usa más comúnmente para unidades de velocidad de datos en redes informáticas, bus interno, velocidades de transferencia de medios flash y discos duros, y para las capacidades de la mayoría de los medios de almacenamiento, en particular discos duros, almacenamiento basado en flash y DVD. Los sistemas operativos que usan esta definición incluyen macOS, iOS, Ubuntu y Debian. También es consistente con los otros usos de los prefijos SI en informática, como velocidades de reloj de CPU o medidas de rendimiento.
Unidades basadas en potencias de 2
Un sistema de unidades basado en potencias de 2 en el que 1 kibibyte (KiB) equivale a 1024 (es decir, 210) bytes se define en el estándar internacional IEC 80000-13 y es compatible con organismos de normalización nacionales e internacionales (BIPM, IEC, NIST). El estándar IEC define ocho de estos múltiplos, hasta 1 yobibyte (YiB), igual a 10248 bytes. Las contrapartes binarias naturales de ronna- y quetta- se dieron en un documento de consulta del Comité Internacional de Pesos y Medidas' Comité Consultivo de Unidades (CCU) como robi- (Ri, 10249) y quebi- (Qi, 102410 sup>), pero aún no han sido adoptados por IEC e ISO.
Un sistema alternativo de nomenclatura para las mismas unidades (referido aquí como la convención habitual), en el que 1 kilobyte (KB) es igual a 1024 bytes, 1 megabyte (MB) es igual a 10242 bytes y 1 gigabyte (GB) es igual a 10243 bytes se menciona en un estándar JEDEC de la década de 1990. Solo los tres primeros múltiplos (hasta GB) se mencionan en el estándar JEDEC, que no menciona TB y mayores. La convención habitual es utilizada por el sistema operativo Microsoft Windows y la capacidad de memoria de acceso aleatorio, como la memoria principal y el tamaño de caché de la CPU, y en marketing y facturación por parte de empresas de telecomunicaciones, como Vodafone, AT&T, Orange y Telstra.
Esta definición fue utilizada por los sistemas operativos de Apple Inc. antes de Mac OS X 10.6 Snow Leopard e iOS 10 antes de cambiar a unidades basadas en potencias de 10.
Unidades parroquiales
Varios proveedores de computadoras han acuñado términos para datos de varios tamaños, a veces con diferentes tamaños para el mismo término, incluso dentro de un mismo proveedor. Estos términos incluyen palabra doble, media palabra, palabra larga, palabra cuádruple, losa, superpalabra y sílaba. También hay términos informales. por ejemplo, medio byte y nybble para 4 bits, octal K para 10008.
Historia de las definiciones en conflicto
La memoria de la computadora contemporánea tiene una arquitectura binaria que hace que la definición de unidades de memoria basada en potencias de 2 sea la más práctica. El uso del prefijo métrico kilo para múltiplos binarios surgió por conveniencia, porque 1024 es aproximadamente 1000. Esta definición fue popular en las primeras décadas de la informática personal, con productos como Tandon 51⁄4 formato de disquete DD de 4 pulgadas (con capacidad para 368 640 bytes) que se anuncia como "360 KB", siguiendo la convención de 1024 bytes. Sin embargo, no fue universal. El Shugart SA-400 51⁄4 El disquete de una pulgada contenía 109 375 bytes sin formatear y se anunciaba como "110 Kbyte", usando la convención 1000. Del mismo modo, el disquete DEC RX01 de 8 pulgadas (1975) tenía 256 256 bytes formateados y se anunciaba como "256k". Se anunciaron otros discos utilizando una mezcla de las dos definiciones: en particular, 3+ Discos HD de 1⁄2 pulgadas anunciados como "1.44 MB" de hecho tienen una capacidad de 1.440 KiB, el equivalente a 1,47 MB o 1,41 MiB.
En 1995, el Comité Interdivisional de Nomenclatura y Símbolos de la Unión Internacional de Química Pura y Aplicada (IUPAC) intentó resolver esta ambigüedad proponiendo un conjunto de prefijos binarios para las potencias de 1024, incluido kibi (kilobinario), mebi (megabinario) y gibi (gigabinario).
En diciembre de 1998, la IEC abordó estos múltiples usos y definiciones al adoptar los prefijos propuestos por la IUPAC (kibi, mebi, gibi, etc.) para denotar sin ambigüedades potencias de 1024. Por lo tanto, un kibibyte (1 KiB) es 10241 bytes = 1024 bytes, un mebibyte (1 MiB) es 10242 bytes = 1,048,576 bytes, y así sucesivamente.
En 1999, Donald Knuth sugirió llamar al kibibyte "kilobyte grande" (KKB).
Definiciones estándar modernas
La IEC adoptó la propuesta de la IUPAC y publicó la norma en enero de 1999. Los prefijos de la IEC ahora forman parte del Sistema Internacional de Cantidades. El IEC especificó además que el kilobyte solo debe usarse para referirse a 1,000 bytes.
Demandas por definición
Las demandas que surgieron de la supuesta confusión de los consumidores sobre las definiciones binarias y decimales de los múltiplos del byte generalmente terminaron a favor de los fabricantes, y los tribunales sostuvieron que la definición legal de gigabyte o GB es 1 GB = 1,000,000,000 (10 9) bytes (la definición decimal), en lugar de la definición binaria (230). Específicamente, el Tribunal de Distrito de los Estados Unidos para el Distrito Norte de California sostuvo que "el Congreso de los Estados Unidos ha considerado que la definición decimal de gigabyte es la 'preferida' uno a los efectos de 'U.S. comercio y comercio' [...] La Legislatura de California también ha adoptado el sistema decimal para todas las 'transacciones en este estado'"
Las demandas anteriores terminaron en un acuerdo sin ningún fallo judicial sobre la cuestión, como una demanda contra el fabricante de unidades Western Digital. Western Digital resolvió el desafío y agregó exenciones de responsabilidad explícitas a los productos de que la capacidad utilizable puede diferir de la capacidad anunciada. Seagate fue demandado por motivos similares y también llegó a un acuerdo.
Ejemplos prácticos
Dependencia | Equivalente aproximado |
---|---|
byte | un carácter latino básico. |
kilobyte | texto de "Jabberwocky" |
un típico favicón | |
megabyte | texto del Harry Potter y el Goblet de Fuego |
gigabyte | aproximadamente media hora de video |
audio sin compresión de calidad de CD El Cordero está en Broadway | |
terabyte | el disco duro más grande del consumidor en 2007 |
1080p 4:3 video de Avatar: El último Airbender series de televisión animadas, todos 61 episodios | |
petabyte | 2000 años de música con código MP3 |
exabyte | tráfico mundial mensual de Internet en 2004 |
zettabyte | a nivel mundial Tráfico de Internet en 2016 |
Usos comunes
Muchos lenguajes de programación definen el tipo de datos Los lenguajes de programación C y C++ definen byte como una "unidad direccionable de almacenamiento de datos lo suficientemente grande como para contener cualquier miembro del conjunto de caracteres básico del entorno de ejecución" (cláusula 3.6 de la norma C). El estándar C requiere que el tipo de datos integral unsigned char debe contener al menos 256 valores diferentes y está representado por al menos ocho bits (cláusula 5.2.4.2.1). Varias implementaciones de C y C++ reservan 8, 9, 16, 32 o 36 bits para el almacenamiento de un byte. Además, los estándares C y C++ requieren que no haya espacios entre dos bytes. Esto significa que cada bit en la memoria es parte de un byte.
El tipo de datos primitivo Los lenguajes de programación.NET, como C#, definen byte como un tipo sin firmar y sbyte como un tipo de datos firmado, con valores de 0 a 255, y −128 a 127, respectivamente.
En los sistemas de transmisión de datos, el byte se utiliza como una secuencia contigua de bits en un flujo de datos en serie, que representa la unidad de datos distinguida más pequeña. Una unidad de transmisión puede incluir además bits de inicio, bits de parada y bits de paridad y, por lo tanto, su tamaño puede variar de siete a doce bits para contener un único código ASCII de siete bits.
Contenido relacionado
Maleabilidad (criptografía)
Corel ventura
DXF de AutoCAD