Procurando por esclarecimentos sobre lógica de prefixo binário / histórico vs. prefixo SI

2

Recentemente, examinei os prefixos SI e Binário usados para armazenamento / computação digital em geral, e ainda não tenho certeza se entendi a lógica por trás do prefixo binário (pergunta real na parte inferior).

Compreensão atual (resumida):

SI:

Parece bastante simples, toda vez que você acaba com 'total # de bytes == valor atual do prefixo * 1.000': use o próximo maior prefixo, que pode ser expresso como '1000 ^ 1 + a quantidade de prefixos SI que você tem já usado a partir de quilo '. Bastante simples.

Binário:

Então, aparentemente, a memória funciona melhor / mais fácil quando se usa unidades de dados que são potências de 2 (a explicação 'arquitetura de sistemas' está acima da minha cabeça para ser honesta, então eu vou tomar a palavra para isso). Além disso, nos primórdios dos computadores antes de serem estabelecidos oficialmente os prefixos binários, uma máquina com 1024 bytes de memória (que seria a menor quantidade de memória usando uma potência de 2 que quebra 1000 bytes), os projetistas decidiram usar o SI já estabelecido. padrões e descrever essa quantidade de memória como um kB, embora eles não fossem realmente iguais (era 'próximo o suficiente' mais ou menos).

Aqui é onde meu entendimento começa a falhar, eu acho que desde que os padrões SI 'sobem' até o próximo prefixo usando a fórmula (base 1000 ^ 1 + usado prefixo #), então o equivalente em Binary é ( base 1024 ^ 1 + usado prefixo #) desde 1024 é mais perto de 1000 do que 512 ou 2048 usando potências de 2, e, portanto, mais estreitamente se relaciona com a fórmula SI.

Pergunta atual:

Então, se isso está correto, neste momento, por que usar os prefixos binários? É realmente tão ruim dizer apenas '1.024 kB' em vez de 1 KiB (ou qualquer unidade que você esteja medindo)? Eu suponho que listar 4 GiB de ram como 4.29497 GB é um pouco bobo (É essa a razão? É mais fácil usar números arredondados?). Isso e meu entendimento geral desses padrões de prefixo está correto?

Qualquer esclarecimento é apreciado, obrigado pela leitura.

    
por Joe 14.05.2016 / 18:48

1 resposta

3

Bem, usamos os termos SI (a.k.a. decadic ou Metric ) porque são os termos corretos para pesos e medidas (um quilograma = 1000 gramas, um quilômetro = 1000 metros, etc.) e porque eles estão por aí há muito tempo (os prefixos kilo - e milli - foram introduzidos em 1700, e eles derivam do grego e do latim, que foram usados 2Kyears há [harhar]). Usamos os termos binários quando eles são apropriados (em contextos de computador) porque eles são os termos corretos nesses contextos.

Mas os termos binários foram introduziu menos de 20 anos atrás e formalizadas há menos de dez anos . E eles não são novos termos que acompanham novos conceitos (como, por exemplo, "laser" foi). Eles são novos termos para conceitos estabelecidos (para o qual as palavras erradas estavam sendo usadas). Portanto, eles são lentos para pegar (porque muitas pessoas ainda estão usando os termos antigos incorretamente).

O que me lembra: você parece estar confuso sobre isso. Quando alguém diz "4GB" quando ele significa 4.294.967.296 bytes, ele não está "arredondando o número", porque ele não significa "4,294967296 GB". Ele quer dizer "4GiB" e está usando o termo errado. Porque ele ainda não aprendeu os novos termos ou porque ele não entende porque a diferença é importante, ou porque ele tem medo de que as pessoas com quem ele está falando vai entender "GB", mas não "GiB". O sistema de termos binários não está sendo ignorado; ainda está em processo de aprendizado, aceitação e adoção.

Isso é coberto exaustivamente na Wikipedia. Por exemplo, no artigo Prefixo binário :

The computer industry has historically used the units kilobyte, megabyte, and gigabyte, and the corresponding symbols KB, MB, and GB, in at least two slightly different measurement systems.  In citations of main memory (RAM) capacity, gigabyte customarily means 1 073 741 824 bytes.  As this is the third power of 1024, and 1024 is a power of two (210), this usage is referred to as a binary prefix.

In most other contexts, the industry uses the multipliers kilo, mega, giga, etc., in a manner consistent with their meaning in the International System of Units (SI), namely as powers of 1000.  For example, a 500 gigabyte hard disk holds 500 000 000 000 bytes, and a 1 Gbit/s (gigabit-per-second) Ethernet connection transfers data at 1 000 000 000 bit/s.  In contrast with the binary prefix usage, this use is described as a decimal prefix, as 1000 is a power of 10 (103).

The use of the same unit prefixes with two different meanings has caused confusion.  Starting around 1998, the International Electrotechnical Commission (IEC) and several other standards and trade organizations addressed the ambiguity by publishing standards and recommendations for a set of binary prefixes that refer exclusively to powers of 1024.  Accordingly, the US National Institute of Standards and Technology (NIST) requires that SI prefixes only be used in the decimal sense:[1] kilobyte and megabyte denote one thousand bytes and one million bytes respectively (consistent with SI), while new terms such as kibibyte, mebibyte and gibibyte, having the symbols KiB, MiB, and GiB, denote 1024 bytes, 1 048 576 bytes, and 1 073 741 824 bytes, respectively.[2]  In 2008, the IEC prefixes were incorporated into the IEC 80000-13 standard.

[Presumivelmente, a Wikipedia está usando a convenção de escrever grandes números decimais com grupos de três dígitos, separados por espaços, respeitar as pessoas que usam . em vez de , como um “separador de milhares”.]

Parágrafos semelhantes aparecem em outras páginas. Em Prefixo métrico :

In some fields of information technology it has been common to designate non-decimal multiples based on powers of 1024, rather than 1000, for some SI prefixes (kilo, mega, giga), contrary to the definitions in the International System of Units (SI).  This practice has been sanctioned by some industry associations, including JEDEC.  The International Electrotechnical Commission (IEC) standardized the system of binary prefixes (kibi, mebi, gibi, etc.) for this purpose.[23]

E em Kilo- :

A second definition has been in common use in some fields of computer science and information technology, which is, however, inconsistent with the SI definition.  It uses kilo as meaning 210 = 1024, because of the mathematical coincidence that 210 is approximately 103.  The reason for this application is that binary values natively used in computing are base 2 and not the base 10 which is used for the SI prefixes.  The NIST comments on this confusion: “Faced with this reality, the IEEE Standards Board decided that IEEE standards will use the conventional, internationally adopted, definitions of the SI prefixes”, instead of kilo for 1024.[4]

Mais recursos da Wikipédia:

Isso também foi abordado no Superusuário antes:

E para risos, veja este quadrinho xkcd :

(mas, claro, não leve isso a sério).

    
por 16.05.2016 / 04:43