Confusão com capacidade de armazenamento (potências de 10 e 2) [duplicado]

23

Eu estava dando uma olhada no HDD e encontrei um documento (da Toshiba, link: 2.5- Polegada SATA HDD mq01abdxxx ) que diz:

"Um Gigabyte (1GB) significa 10 ^ 9 = 1.000.000.000 bytes usando potências de 10. Um sistema operacional de computador, no entanto, reporta capacidade de armazenamento usando potências de 2 para a definição de 1GB = 2 ^ 30 = 1.073.741.824 bytes e, portanto, mostra menos capacidade de armazenamento. "

Então os poderes de 10 são maiores que os de 2, OK.

Exemplo 10 ^ 2 = 100 e 2 ^ 2 = 4.

Mas não entendo o documento que diz para a mesma capacidade de armazenamento:

1 GB é 1.000.000.000 bytes (potências de 10) e 1.073.741.824 bytes (potências de 2), então: mostra menos capacidade de armazenamento (os poderes de 2). Por que isso é menos? Se eu ver por 1GB mais capacidade de armazenamento em potências de 2 que potências de 10.

    
por learnprogramming 25.05.2016 / 11:48

4 respostas

58

A razão histórica de usar poderes de 2 é que a memória e o disco rígido são acessados pela CPU usando um espaço de endereço composto de linhas em código binário. Os produtores de hardware decidiram os nomes dessa maneira:

2^10 = 1024 and as it's almost 1000 then call it 1 Kilobyte

2^20 = 1048576 bytes and as it's almost 1000000 then call it 1 Megabyte

Para o usuário normal, isso é um absurdo e incômodo. Além disso, os prefixos "kilo", "mega", etc. entram em conflito com o padrão Sistema Internacional de Unidades (SI), onde "1 kiloWatt" significa 10 ^ 3 ou 1000 Watts.

Para resolver o problema, no ano 2000 A Comissão Eletrotécnica Internacional ou IEC propôs um esquema de notação para as unidades baseadas em poderes de 2 na norma ISO / IEC 80000-13 .

Os novos nomes foram criados substituindo a segunda sílaba no nome antigo por "bi" (referindo-se a "2"). Um quilobyte deve ser agora um kibibyte e assim por diante. As novas unidades também têm símbolos correspondentes, então '10 kibibyte 'agora é escrito como 10 KiB ao invés de 10 kB . Esta é a tabela de correspondência:

Notation      Symbol    Value
1 kilobyte    1 kB      10^3  = 1000 bytes
1 megabyte    1 MB      10^6  = 1000000 bytes
1 gigabyte    1 GB      10^9  = 1000000000 bytes
1 terabyte    1 TB      10^12 = 1000000000000 bytes


1 kibibyte    1 KiB     2^10 = 1024 bytes
1 mebibyte    1 MiB     2^20 = 1048576 bytes
1 gibibyte    1 GiB     2^30 = 1073741824 bytes
1 tebibyte    1 TiB     2^40 = 1099511627776 bytes

16 anos depois, muitos fornecedores de hardware e software ainda se referem às unidades de base 2 com seus nomes SI . Um “megabyte” pode significar 1000000 bytes ou 1048576 bytes.

Se você comprar um disco rígido de 100 GB, a capacidade será 100x10 ^ 9 ou 10 ^ 11 bytes. Mas, e este é o grande, mas o sistema operacional relatará apenas a unidade como tendo uma capacidade de 93 GB (10^11)/(2^30) . Você comprou uma unidade de 100 , que é equivalente a uma unidade gibibyte . O sistema operacional é aquele que usa a notação errada.

Os fabricantes de unidades ocultam esse problema com avisos de isenção de responsabilidade e explicações que sempre levam à conclusão de que “a capacidade formatada real pode ser menor”.

    
por 25.05.2016 / 12:44
21

Resumindo: era tudo sobre marketing.

jcbermu explicou bem, mas eu não concordo com as razões por trás disso tudo.

Enquanto qualquer sistema de informática usa o sistema binário, os bits & bytes são escritos como ^ 2, o que é normal. Portanto, não é o sistema operacional ou o software culpado pela confusão. Tudo é binário aqui.

É culpa dos fabricantes de HDDs declarar as capacidades do HDD no sistema ^ 10, o que lhe rouba bastante do GB prático. Um disco rígido de 20 GB realmente poderá armazenar 18 GB e assim por diante ... um disco de 1 TB será na verdade de ~ 930 GB. O escárnio "bibyte" foi inventado para tentar evitar um pouco da confusão, mas não conseguiu ser adotado na prática.

    
por 25.05.2016 / 14:46
16

a resposta do jcbermu é boa, mas quero abordar isso de um ângulo diferente.

1GB is 1,000,000,000 bytes (powers of 10) and 1,073,741,824 bytes (powers of 2), then: it shows less storage capacity (the powers of 2). Why is it less? If I see for 1GB more storage capacity in powers of 2 than powers of 10.

Uma mídia de armazenamento - qualquer mídia de armazenamento - pode armazenar um número específico de bits acessíveis. Geralmente na computação de propósito geral, ela é expressa como bytes ou vários bytes, mas se você começar a olhar por exemplo ICs de memória (circuitos integrados, chips), verá sua capacidade de memória expressa em termos de bits acessíveis.

Um disco rígido armazenará um número específico de bits ou bytes que, por razões técnicas, são endereçados em termos de setores. Por exemplo, uma unidade de 4 TB pode ter 7,814,037,168 setores de 512 bytes cada, o que resulta em uma capacidade de armazenamento de 4.000.787.030.016 bytes. Isso é o que você realmente recebe. (Na prática, você perde um pouco disso para as informações de escrituração do computador: sistema de arquivos, diário, particionamento etc. No entanto, os bytes ainda estão lá, você pode • use-os para armazenar arquivos, porque eles são necessários para armazenar os dados que efetivamente permitem armazenar os arquivos.)

É claro que o número 4.000.787.030.016 é um pouco pesado. Por essa razão, escolhemos representar essa informação de alguma outra forma. Mas, como ilustrado por jcbermu, optamos por fazê-lo de duas maneiras diferentes: em poderes de dez ou poderes de dois.

Em potências de dez, 4.000.787.030.016 bytes são 4.000787030016 * 10 ^ 12 bytes, que arredondam muito bem; com quatro dígitos significativos, arredonda para 4.001 TB, para a definição SI de "tera": 10 ^ 12. Nosso disco rígido pode armazenar mais de 4 * 10 ^ 12 bytes, portanto, em termos de SI, é um dispositivo de armazenamento de 4 terabytes.

Em poderes de dois, 4.000.787.030.016 bytes são 3.638694607 * 2 ^ 40 bytes, o que não é muito bom. Também parece como uma quantidade menor, porque o 3.639 é menor que 4.001, e isso é ruim para o marketing (quem quer comprar um drive de 3.6 TB quando o fabricante ao lado vende um drive de 4.0 TB pelo mesmo preço?). Este é o prefixo binário 3.6 "tebibytes", onde o "bi" indica que é uma quantidade de base dois.

Na realidade, no entanto, é exatamente o mesmo número de bytes; o número só é expresso de forma diferente! Se você fizer as contas novamente, verá que 3.638694607 * 2 ^ 40 = 4.000787030016 * 10 ^ 12, de modo que você obtenha a mesma capacidade de armazenamento no final.

    
por 25.05.2016 / 23:51
5

Outras respostas abordaram a razão histórica da diferença, mas parece-me que você está perguntando sobre a diferença de acordo com a matemática.

Você está correto em dizer que uma potência de 10 é maior que uma potência de 2 e que, inversamente, um gigabyte (10 ^ 9 bytes) é menor que um gibibyte (2 ^ 30 bytes).

A inversão de tamanhos é explicada pelo fato de que há mais poderes em um gibibyte (30 potências) do que poderes em um gigabyte (9 potências). Acontece que o número de poderes tem um efeito maior sobre o tamanho final do que o tamanho de cada poder individual.

Quanto ao motivo pelo qual o tamanho relatado de um disco é menor quando medido em Gibbs (2 ^ 30) do que quando medido em gigabytes (10 ^ 9), é natural que ao medir uma quantidade fixa que uma unidade de medida maior fornece um número menor. Por exemplo, considere a altura em polegadas versus a altura em centímetros. Como uma polegada é maior do que um centímetro, a mesma altura medirá menos polegadas (por exemplo, 72 polegadas) do que centímetros (por exemplo, 183 centímetros). A altura é a mesma distância física em ambos os casos, mas cada medida só dá um número diferente de acordo com a unidade de medida.

    
por 26.05.2016 / 12:09