Byte

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar
Unidade de informação digital, geralmente 8 bits

O byte é uma unidade de informação digital que geralmente consiste em oito bits. Historicamente, o byte era o número de bits usado para codificar um único caractere de texto em um computador e, por esse motivo, é a menor unidade endereçável de memória em muitas arquiteturas de computador. Para eliminar a ambiguidade dos bytes de tamanho arbitrário da definição comum de 8 bits, os documentos de protocolo de rede, como o Protocolo da Internet (RFC 791), referem-se a um byte de 8 bits como um octeto. Esses bits em um octeto geralmente são contados com numeração de 0 a 7 ou 7 a 0, dependendo do bit endianness. O primeiro bit é o número 0, tornando o oitavo bit o número 7.

O tamanho do byte tem sido historicamente dependente do hardware e não existem padrões definitivos que imponham o tamanho. Tamanhos de 1 a 48 bits foram usados. O código de caracteres de seis bits era uma implementação frequentemente usada nos primeiros sistemas de codificação, e os computadores que usavam bytes de seis e nove bits eram comuns na década de 1960. Esses sistemas geralmente tinham palavras de memória de 12, 18, 24, 30, 36, 48 ou 60 bits, correspondendo a 2, 3, 4, 5, 6, 8 ou 10 bytes de seis bits. Nesta era, os agrupamentos de bits no fluxo de instrução eram freqüentemente chamados de sílabas ou laje, antes que o termo byte se tornasse comum.

O padrão moderno de oito bits, conforme documentado na ISO/IEC 2382-1:1993, é uma conveniente potência de dois, permitindo os valores codificados em binário de 0 a 255 para um byte—2 elevado a 8 é 256. A norma internacional IEC 80000-13 codificou esse significado comum. Muitos tipos de aplicativos usam informações representáveis em oito ou menos bits e os projetistas de processadores geralmente otimizam para esse uso. A popularidade das principais arquiteturas de computação comercial ajudou na aceitação onipresente do byte de 8 bits. Arquiteturas modernas normalmente usam palavras de 32 ou 64 bits, construídas de quatro ou oito bytes, respectivamente.

O símbolo da unidade para o byte foi designado como a letra maiúscula B pela Comissão Eletrotécnica Internacional (IEC) e pelo Instituto de Engenheiros Elétricos e Eletrônicos (IEEE). Internacionalmente, a unidade octeto, símbolo o, define explicitamente uma sequência de oito bits, eliminando a ambiguidade potencial do termo "byte".

Etimologia e história

O termo byte foi cunhado por Werner Buchholz em junho de 1956, durante a fase inicial de projeto do computador IBM Stretch, que tinha endereçamento para as instruções de bit e comprimento de campo variável (VFL) com um byte tamanho codificado na instrução. É uma repetição deliberada de bite para evitar a mutação acidental para bit.

Outra origem de byte para grupos de bits menores que o tamanho de palavra de um computador e, em particular, grupos de quatro bits, está registrada por Louis G. Dooley, que afirmou ter cunhado o termo enquanto trabalhava com Jules Schwartz e Dick Beeler em um sistema de defesa aérea chamado SAGE no MIT Lincoln Laboratory em 1956 ou 1957, que foi desenvolvido em conjunto por Rand, MIT e IBM. Mais tarde, a linguagem de Schwartz JOVIAL realmente usou o termo, mas o autor lembrou vagamente que era derivado de AN/FSQ-31.

Os primeiros computadores usavam uma variedade de representações decimais codificadas em binário (BCD) de quatro bits e os códigos de seis bits para padrões gráficos imprimíveis comuns no Exército dos EUA (FIELDATA) e na Marinha. Essas representações incluíam caracteres alfanuméricos e símbolos gráficos especiais. Esses conjuntos foram expandidos em 1963 para sete bits de codificação, chamados de American Standard Code for Information Interchange (ASCII) como o Federal Information Processing Standard, que substituiu os códigos incompatíveis do teleprinter em uso por diferentes ramos do governo e universidades dos EUA durante a década de 1960. O ASCII incluía a distinção entre letras maiúsculas e minúsculas e um conjunto de caracteres de controle para facilitar a transmissão da linguagem escrita, bem como as funções do dispositivo de impressão, como avanço de página e alimentação de linha, e o controle físico ou lógico do fluxo de dados durante a transmissão. meios de comunicação. Durante o início dos anos 1960, enquanto também atuava na padronização ASCII, a IBM introduziu simultaneamente em sua linha de produtos System/360 o Extended Binary Coded Decimal Interchange Code (EBCDIC) de oito bits, uma expansão de seu código decimal codificado em binário de seis bits (BCDIC) representações usadas em perfurações de cartão anteriores. A proeminência do System/360 levou à adoção onipresente do tamanho de armazenamento de oito bits, enquanto em detalhes os esquemas de codificação EBCDIC e ASCII são diferentes.

No início dos anos 1960, a AT&T introduziu a telefonia digital em linhas tronco de longa distância. Estes usaram a codificação μ-law de oito bits. Esse grande investimento prometia reduzir os custos de transmissão de dados de oito bits.

O desenvolvimento de microprocessadores de oito bits na década de 1970 popularizou esse tamanho de armazenamento. Microprocessadores como o Intel 8008, o antecessor direto do 8080 e do 8086, usados nos primeiros computadores pessoais, também podiam executar um pequeno número de operações nos pares de quatro bits em um byte, como o ajuste de adição decimal (DAA) instrução. Uma quantidade de quatro bits é freqüentemente chamada de nibble, também nybble, que é convenientemente representada por um único dígito hexadecimal.

O termo octeto é usado para especificar inequivocamente um tamanho de oito bits. É usado extensivamente em definições de protocolo.

Historicamente, o termo octad ou octade foi usado para denotar oito bits também, pelo menos na Europa Ocidental; no entanto, esse uso não é mais comum. A origem exata do termo não é clara, mas pode ser encontrada em fontes britânicas, holandesas e alemãs das décadas de 1960 e 1970 e em toda a documentação dos computadores mainframe da Philips.

Símbolo da unidade

O símbolo da unidade para o byte é especificado no IEC 80000-13, IEEE 1541 e no Metric Interchange Format como o caractere maiúsculo B.

No Sistema Internacional de Quantidades (ISQ), B é o símbolo do bel, uma unidade de razão de potência logarítmica com o nome de Alexander Graham Bell, criando um conflito com a especificação IEC. No entanto, existe pouco perigo de confusão, porque o bel é uma unidade raramente usada. É usado principalmente em sua fração decádica, o decibel (dB), para medições de intensidade de sinal e nível de pressão sonora, enquanto uma unidade para um décimo de byte, o decibyte e outras frações são usadas apenas em unidades derivadas, como como taxas de transmissão.

A letra minúscula o para octeto é definida como o símbolo para octeto na IEC 80000-13 e é comumente usada em idiomas como francês e romeno, e também é combinada com prefixos métricos para múltiplos, por exemplo, ko e Mo.

Unidades de vários bytes

Unidades de múltiplos bytes
Decimal
Valor Metricidade
1000 KBquilograma
10002MB MBmegabyte
10003GBgigabyte
10004TBterabyte
10005PBpetabyte
10006EBexabyte
10007ZBzettabyte
10008YBO que é?
10009RBO que é?
100010.QBQuettabyte
Binário
Valor ICE Memória
1024 KiBkibibyte KBquilograma
10242MiBmebibyte MB MBmegabyte
10243Gibgibibyte GBgigabyte
10244TiBO que é? TBterabyte
10245PiBO que é?
10246EiB.exbibyte
10247Zibzebibyte
10248YiBO que é?
Ordens de magnitude dos dados

Existe mais de um sistema para definir unidades maiores com base no byte. Alguns sistemas são baseados em potências de 10; outros sistemas são baseados em potências de 2. A nomenclatura para esses sistemas tem sido objeto de confusão. Os sistemas baseados em potências de 10 usam de forma confiável prefixos SI padrão (kilo, mega, giga,...) e seus símbolos correspondentes (k, M, G,...). Sistemas baseados em potências de 2, no entanto, podem usar prefixos binários (kibi, mebi, gibi,...) e seus símbolos correspondentes (Ki, Mi, Gi,...) ou podem usar os prefixos K, M e G, criando ambiguidade quando os prefixos M ou G são usados.

Embora a diferença numérica entre as interpretações decimal e binária seja relativamente pequena para o kilobyte (cerca de 2% menor que o kibibyte), os sistemas se desviam cada vez mais à medida que as unidades crescem (o desvio relativo cresce 2,4% para cada três ordens de magnitude). Por exemplo, um yottabyte baseado em potência de 10 é cerca de 17% menor do que um yobibyte baseado em potência de 2.

Unidades baseadas em potências de 10

A definição de prefixos usando potências de 10 — em que 1 quilobyte (símbolo kB) é definido como igual a 1.000 bytes — é recomendada pela Comissão Eletrotécnica Internacional (IEC). O padrão IEC define oito desses múltiplos, até 1 yottabyte (YB), igual a 10008 bytes. Os prefixos adicionais ronna- para 10009 e quetta- para 100010 foram adotados pelo International Bureau of Weights e Medidas (BIPM) em 2022.

Esta definição é mais comumente usada para unidades de taxa de dados em redes de computadores, barramento interno, disco rígido e velocidades de transferência de mídia flash, e para as capacidades da maioria das mídias de armazenamento, particularmente discos rígidos, armazenamento baseado em flash e DVDs. Os sistemas operacionais que usam essa definição incluem macOS, iOS, Ubuntu e Debian. Também é consistente com os outros usos dos prefixos SI na computação, como velocidades de clock da CPU ou medidas de desempenho.

Unidades baseadas em potências de 2

Um sistema de unidades baseado em potências de 2 em que 1 kibibyte (KiB) é igual a 1.024 (ou seja, 210) bytes é definido pelo padrão internacional IEC 80000-13 e é suportado por organismos de normalização nacionais e internacionais (BIPM, IEC, NIST). O padrão IEC define oito desses múltiplos, até 1 yobibyte (YiB), igual a 10248 bytes. As contrapartes binárias naturais para ronna- e quetta- foram dadas em um documento de consulta do Comitê Internacional de Pesos e Medidas' Comitê Consultivo de Unidades (CCU) como robi- (Ri, 10249) e quebi- (Qi, 102410), mas ainda não foram adotados pela IEC e ISO.

Um sistema alternativo de nomenclatura para as mesmas unidades (referido aqui como a convenção habitual), no qual 1 kilobyte (KB) é igual a 1.024 bytes, 1 megabyte (MB) é igual a 10242 bytes e 1 gigabyte (GB) é igual a 10243 bytes é mencionado por um padrão JEDEC dos anos 90. Apenas os três primeiros múltiplos (até GB) são mencionados pelo padrão JEDEC, que não faz menção a TB e maiores. A convenção usual é usada pelo sistema operacional Microsoft Windows e capacidade de memória de acesso aleatório, como memória principal e tamanho do cache da CPU, e em marketing e faturamento por empresas de telecomunicações, como Vodafone, AT&T, Orange e Telstra.

Esta definição foi usada pelos sistemas operacionais da Apple Inc. anteriores ao Mac OS X 10.6 Snow Leopard e iOS 10 antes de mudar para unidades baseadas em potências de 10.

Unidades paroquiais

Vários fornecedores de computadores criaram termos para dados de vários tamanhos, às vezes com tamanhos diferentes para o mesmo termo, mesmo dentro de um único fornecedor. Esses termos incluem palavra dupla, meia palavra, palavra longa, palavra quádrupla, laje, superpalavra e sílaba. Existem também termos informais. por exemplo, meio byte e nybble para 4 bits, octal K para 10008.

Histórico das definições conflitantes

A diferença de porcentagem entre interpretações decimais e binárias dos prefixos da unidade cresce com o aumento do tamanho do armazenamento

A memória do computador contemporâneo tem uma arquitetura binária tornando mais prática a definição de unidades de memória com base em potências de 2. O uso do prefixo métrico kilo para múltiplos binários surgiu por conveniência, pois 1.024 é aproximadamente 1.000. Essa definição era popular nas primeiras décadas da computação pessoal, com produtos como o Tandon 51Formato de disquete DD de 4polegadas (com 368.640 bytes) sendo anunciado como "360 KB", seguindo a convenção de 1.024 bytes. Não era universal, no entanto. O Shugart SA-400 514 disquete de 109.375 bytes não formatados e foi anunciado como "110 Kbyte", usando a convenção 1000. Da mesma forma, o disquete DEC RX01 de 8 polegadas (1975) continha 256.256 bytes formatados e foi anunciado como "256k". Outros discos foram anunciados usando uma mistura das duas definições: notavelmente, 3+ Discos HD de 12polegadas anunciados como "1,44 MB" na verdade, têm uma capacidade de 1.440 KiB, o equivalente a 1,47 MB ou 1,41 MiB.

Em 1995, o Comitê Interdivisional de Nomenclatura e Símbolos da União Internacional de Química Pura e Aplicada (IUPAC) tentou resolver essa ambiguidade propondo um conjunto de prefixos binários para as potências de 1024, incluindo kibi (quilobinário), mebi (megabinário) e gibi (gigabinário).

Em dezembro de 1998, a IEC abordou esses múltiplos usos e definições adotando os prefixos propostos pela IUPAC (kibi, mebi, gibi, etc.) para denotar inequivocamente potências de 1024. Assim, um kibibyte (1 KiB) é 10241 bytes = 1024 bytes, um mebibyte (1 MiB) é 10242 bytes = 1.048.576 bytes e assim por diante.

Em 1999, Donald Knuth sugeriu chamar o kibibyte de "quilobyte grande" (KKB).

Definições padrão modernas

A IEC adotou a proposta da IUPAC e publicou a norma em janeiro de 1999. Os prefixos da IEC agora fazem parte do Sistema Internacional de Quantidades. O IEC especificou ainda que o kilobyte deve ser usado apenas para se referir a 1.000 bytes.

Ações judiciais sobre definição

Ações judiciais decorrentes de suposta confusão do consumidor sobre as definições binárias e decimais de múltiplos do byte geralmente terminaram em favor dos fabricantes, com os tribunais sustentando que a definição legal de gigabyte ou GB é 1 GB = 1.000.000.000 (10 9) bytes (a definição decimal), em vez da definição binária (230). Especificamente, o Tribunal Distrital dos Estados Unidos para o Distrito Norte da Califórnia considerou que "o Congresso dos EUA considerou a definição decimal de gigabyte como a 'preferida' um para fins de 'U.S. comércio e comércio' [...] A legislatura da Califórnia também adotou o sistema decimal para todas as 'transações neste estado'"

Ações judiciais anteriores terminaram em acordo sem decisão judicial sobre a questão, como uma ação contra o fabricante de discos Western Digital. A Western Digital resolveu o desafio e adicionou isenções de responsabilidade explícitas aos produtos de que a capacidade utilizável pode diferir da capacidade anunciada. A Seagate foi processada por motivos semelhantes e também fez um acordo.

Exemplos práticos

Unidade equivalente aproximado
bytes um caráter latino básico.
quilograma texto de "Jabberwocky"
um favicon típico
megabyte texto de Harry Potter e o Goblet de Fogo
gigabyte cerca de meia hora de vídeo
Áudio sem compressão de qualidade de CD The Lamb Lies Down na Broadway
terabyte o maior disco rígido do consumidor em 2007
1080p 4:3 vídeo de Avatar: O último Airbender série de televisão animada, todos os 61 episódios
petabyte 2000 anos de música codificada por MP3
exabyte tráfego mensal global da Internet em 2004
zettabyte anual global Tráfego na Internet em 2016

Usos comuns

Muitas linguagens de programação definem o tipo de dados byte

As linguagens de programação C e C++ definem byte como uma "unidade endereçável de armazenamento de dados grande o suficiente para conter qualquer membro do conjunto básico de caracteres do ambiente de execução" (cláusula 3.6 da norma C). O padrão C exige que o tipo de dado integral unsigned char contenha pelo menos 256 valores diferentes e seja representado por pelo menos oito bits (cláusula 5.2.4.2.1). Várias implementações de C e C++ reservam 8, 9, 16, 32 ou 36 bits para o armazenamento de um byte. Além disso, os padrões C e C++ exigem que não haja lacunas entre dois bytes. Isso significa que cada bit na memória faz parte de um byte.

O tipo de dados primitivo byte do Java é definido como oito bits. É um tipo de dados com sinal, contendo valores de -128 a 127.

Linguagens de programação.NET, como C#, definem byte como um tipo não assinado e sbyte como um tipo de dados assinado, contendo valores de 0 a 255 e −128 a 127, respectivamente.

Nos sistemas de transmissão de dados, o byte é usado como uma sequência contígua de bits em um fluxo de dados serial, representando a menor unidade distinta de dados. Uma unidade de transmissão pode incluir adicionalmente bits de início, bits de parada e bits de paridade e, portanto, seu tamanho pode variar de sete a doze bits para conter um único código ASCII de sete bits.

Contenido relacionado

Gráfico expansor

Na teoria dos grafos, um gráfico expansor é um grafo esparso que possui fortes propriedades de conectividade, quantificadas usando vértice, aresta ou...

Apenas outro hacker de Perl

Apenas outro hacker Perl, ou JAPH, geralmente se refere a um programa Perl que imprime "Apenas outro hacker Perl," para uma...

Djbdns

O pacote de software djbdns é uma implementação de DNS. Ele foi criado por Daniel J. Bernstein em resposta às suas frustrações com repetidas falhas de...
Más resultados...
Tamaño del texto:
undoredo
format_boldformat_italicformat_underlinedstrikethrough_ssuperscriptsubscriptlink
save