Devo ensinar que 1 kB = 1024 bytes ou 1000 bytes?

Qual conversão devo ensinar aos meus alunos de graduação? Que 1 kB equivale a 1024 bytes (binário), como todos aprenderam nos anos 90 ou a recente conversão “amigável” liderada pela indústria que diz que 1 kB é na verdade 1000 bytes (decimal)?

Meu sentimento imediato vai para a conversão binária, mas quando IEC diz o contrário e os principais sistemas operacionais decidem pela conversão decimal (Mac OS X ≥ 10,6 e Ubuntu ≥ 10,10 agora usam os prefixos SI exclusivamente para se referir a potências de 1000) Não tenho mais tanta certeza.

Comentários

  • Observe que o prefixo SI ” kilo ” é sempre escrito em minúsculas ” k “. Pessoalmente, estou acostumado a ver ” kB “, mesmo quando estritamente não ‘ ta prefixo SI.
  • xkcd
  • Ram é solado em kiB, Mib, GiB e discos rígidos em kB, MB, GB. Ambos frequentemente identificados como kB, M B, GB. Portanto, nem sempre se trata de programação.
  • O que acho engraçado é que a versão potência de dois (aquela que ‘ é claramente o que geralmente é desejado ) não tem qualquer justificativa para o uso do prefixo ” Kilo ” – ele ‘ é apenas que algum poder arbitrário de dois chega bem perto de algum poder arbitrário de 10, então ignoramos a diferença para a conveniência de sermos capazes de dizer ” K ” (ou ” M ” ou ” G “) porque ” 0x0200 ” abyte é muito difícil de dizer.
  • Byte não é uma unidade SI. A unidade do SI para quantidade é o mol. 1 GB equivale a aproximadamente 1,66 bytes de femtomole

Resposta

Você deve ensinar os dois e provavelmente deseja usar o unidade binária. Quando você está falando sobre a diferença, pode ser útil dizer a eles como saber a diferença ao lê-los:

O quilo SI é k :
$ 1 \ \ text {kB (kilobyte)} = 10 ^ {3} \ \ text {bytes} = 1000 \ \ text {bytes} $

Enquanto o binário kibi- é Ki :
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {bytes} $

Percebi que você usou KB em sua pergunta para se referir a ambos os tamanhos; talvez você também deva apontar que KB pode ser interpretado como qualquer um desses prefixos (embora a Wikipedia sugira que é mais frequentemente usado no lugar de KiB). Em sua posição, sugiro esclarecer a qual você quer dizer se usar esta notação.

(Enquanto você está examinando unidades confusas, uma diferença relacionada nas unidades de escrita é que b minúsculo é bits, B maiúsculo é bytes; uma diferença de oito vezes é muito mais significativa do que 2,4%.)

Comentários

  • Além de ensinar ambos, você precisa ensinar isso k / quilo pode significar dependendo do contexto / de quem ‘ o está usando. Só porque o croquete existe não ‘ t significa que as pessoas gostam ou realmente o usam.
  • Se você cobrir bits e bytes, também deve mencionar, pelo menos brevemente, que um ” kilobit ” é quase sempre 1000 bits (porque a rede) e um ” kilobyte ” é quase sempre 1024 bytes (porque tudo -exceto para rede).
  • 1 MiB é ≈5% maior que 1 MB, 1 GiB é 7,4% maior que 1 GB e 1 TiB é quase y 10% maior que 1 TB.
  • Sempre me ensinaram que a base é binária, uma palavra de 8 bits é um byte, uma palavra de 16 bits tem dois bytes e, seguindo a convenção binária, 1 KB é 1024 bytes , 1 MB é 1024 KB, 1 GB é 1024 MB, 1 TB é 1024 GB – e em binário, a unidade básica de computação, faz todo o sentido. Sempre achei a tentativa de adoção do uso de SI uma confusão incorreta e desnecessária. Dito isso, como educador, o aluno precisará entender a confusão.
  • ” Devo ensinar que 1 KB = 1.024 bytes ou 1000 bytes ? ” Sim. 🙂

Resposta

Você deve ensiná-los que está “s bagunçado além do reparo , e é” função de sua geração “ensinar o próxima geração a usar os prefixos padrão que parecem bobos , de modo que, quando eles finalmente se retirarem (e os atuais antigos forem removidos mais permanentemente do argumento), haverá pode finalmente ser um consenso.

Como as coisas estão atualmente, todos os prefixos são desconhecidos sem contexto.Um megabit de rede tem $ 10 ^ 6 $ bits, um megabyte de sistema de arquivos tem $ 2 ^ {20} $ bytes, um megabyte de disco rígido está em algum lugar perto de $ 10 ^ 6 $ bytes e um megapixel é “provavelmente um milhão de pixels, quem se importa. “

Comentários

  • O consenso parece ser que o tamanho do disco é a aproximação simples mais próxima inferior a n × 1000 ^ m. Portanto, 2.057 × 10 ^ 12 bytes seriam anunciados como 2 TB, não 2,1 TB.
  • I ‘ d note que os prefixos raramente (basicamente nunca) têm seu significado binário com unidades diferentes de bytes . Um megapixel equivale a 1 milhão de pixels, um megabit equivale a um milhão de bits.
  • O megabyte do sistema de arquivos sendo $ 2 ^ {20} $ bytes – talvez. Às vezes, no mesmo sistema operacional, você ‘ verá ” megabytes ” (incluindo precisão decimal) sendo $ 10 ^ 6 $ em algumas das ferramentas e $ 2 ^ {20} $ em outras. Na maioria das vezes em ferramentas de linha de comando versus ferramentas GUI, mas conheço um sistema operacional em que até mesmo diferentes ferramentas GUI fornecidas por sistema operacional discordam disso …

Resposta

Na verdade, você precisa ensinar os dois para que sejam avisados de que o uso não é consistente. Então você pode escolher um como padrão em seu curso daqui para frente.

A escolha depende um pouco do que você está ensinando. Se for como avaliar discos rígidos, etc., $ K = 1000 $ funciona agora. Para a maioria da programação, entretanto, $ K = 2 ^ {10} = 1024 $ é provavelmente o melhor.

Infelizmente, o significado duplo provavelmente se deve ao fato de os fabricantes tentarem evitar confusão nas mentes de clientes não sofisticados.

Comentários

  • O kilobyte foi cunhado muito antes do kilobyte de 1.000 bytes em 1998. O IEC realmente bagunçou as coisas.
  • Sim, mas kilo = 1000 remonta a 1795: etymonline.com/word/kilo- Portanto, os não geeks têm alguma precedência aqui, talvez. Mas mais importante: se você ensinar a eles apenas uma coisa como a ” coisa correta “, você os confundirá mais tarde. O mundo está uma bagunça. Os professores não devem ‘ fingir que não ‘ t. Ser dogmático não ‘ é muito útil.
  • Além disso, kB / KB não ‘ ajuda com MB, GB, TB que a) são muito mais relevantes b) têm diferenças muito maiores.
  • ” Infelizmente, os significados duplos provavelmente se devem aos fabricantes que tentam evitar confusão no mentes de clientes não sofisticados ” O mais provável é que os anunciantes queiram que seu produto pareça maior do que realmente é. Por que anunciar um disco rígido de 3 TB usando os 1 TB corretos = 1024 * 1024 * 1024 * 1024 bytes quando você pode anunciar um disco rígido de 3,3 TB usando o advogado aprovado 1 TB = 1000 * 1000 * 1000 * 1000 bytes. 3.3 é maior que 3, certo?
  • @Readin Ou, como vejo com mais frequência, uma unidade de 3 TB que na verdade tem 2,7 TB de armazenamento total.

Resposta

A diferença entre fornecer a seus alunos uma discussão adequada sobre este tópico e simplesmente ensiná-los um ou outro é a diferença entre ser um verdadeiro educador e ser um recitador de factóides.

Se não houver uma única definição correta de KB para você, então por que instilaria algo diferente em seus alunos? A resposta à sua pergunta é, portanto, óbvia em sua formação. Sua responsabilidade como professor é transmitir uma compreensão da questão, não reduzi-la a um ou outro fato que você sabe ser menos que verdadeiro.

Comentários

  • Eu concordo, mas antes de oferecer uma discussão adequada com meus alunos, ‘ estou fornecendo uma discussão apropriada aqui, qual era minha intenção em primeiro lugar ( em vez de obter respostas simples uma ou outra ).

Resposta

Sim Concordo com outras respostas, ensino as duas e também noto a semelhança.

A diferença

  • $ \ text {ki} = 1024 = 2 ^ {10} $
  • $ \ text {k} = 1000 = 10 ^ 3 $
  • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ às vezes é usado para significar $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

A semelhança

  • $ 1 = \ text {k} ^ 0 $ e $ 1 = \ text {ki} ^ 0 $
  • $ \ text {k} = \ text {k} ^ 1 $ e $ \ text {ki} = \ text {ki} ^ 1 $
  • $ \ text {M} = \ text {k } ^ 2 $ e $ \ text {Mi} = \ text {ki} ^ 2 $
  • $ \ text {G} = \ text {k} ^ 3 $ e $ \ text {Gi} = \ text {ki} ^ 3 $
  • $ \ text {T} = \ tex t {k} ^ 4 $ e $ \ text {Ti} = \ text {ki} ^ 4 $
  • $ \ text {P} = \ text {k} ^ 5 $ e $ \ text {Pi} = \ text {ki} ^ 5 $
  • $ \ text {E} = \ text {k} ^ 6 $ e $ \ text {Ei} = \ text {ki} ^ 6 $

Matemática rápida

$ 64 \ text {bits} = (6 \ vezes 10 + 4) \ text {bits} = \ text {ki} ^ 6 \ vezes 2 ^ {4} = 16 \ text {endereços Ei} $

Isso tem algumas semelhanças e algumas diferenças com o sistema de base 10 que eles (deveriam) conhecer. Primeiro, nós o dividimos em blocos de 10 (em vez de 3), o restante apenas convertemos para a base 10, o resto é o mesmo.

Onde usado (principalmente)

É importante mostrar onde os 2 sistemas são usados. Embora algumas respostas digam que eles nunca viram o sistema SI baseado em $ 1000 $ usado na computação. Acontece que o sistema SI é muito usado, dependendo do que está sendo medido.

  • IEC 60027-2 A.2 e ISO / IEC 80000, por exemplo. $ \ text {ki} $ :
    • medidas de memória primária: RAM, RAM, cache.
    • medida de tamanhos de arquivo , tamanhos de partição e tamanhos de disco dentro do sistema operacional.
  • unidades SI, por exemplo $ \ text {k} $ :
    • medidas de dispositivos de memória secundária: discos rígidos, SSDs.
    • velocidades de rede.
    • CPU / memória / velocidades de barramento.
    • todas as outras velocidades.

No entanto, o uso do símbolo $ \ text {ki} $ neste momento nem sempre é usado.


ver também https://en.wikipedia.org/wiki/Binary_prefix

Comentários

  • Esta resposta é implícita.
  • @prl Se você pretende evitar a pergunta (respondendo a uma pergunta diferente), você está parcialmente correto. Estou tentando estender outras respostas. E para dar alguns conselhos sobre “Como”, onde a pergunta era “Qual”.
  • IMO esta é a melhor resposta, mas poderia ser ligeiramente melhorada pela menção explícita do estilo . Ou seja, da mesma forma que existem diferentes estilos de citação de artigos ou de delimitação de listas (vide vírgula Oxford), existem diferentes estilos de formatação de números. Em uma publicação IEC pós-2000, você pode assumir que o estilo da casa será SI / * bi. Outras organizações / editores podem usar outros estilos.
  • Resposta muito boa. Dois detalhes: 0) Para todos os prefixos (k, M, Mi, Gi, etc.), use tipo romano, não itálico; Sugiro usar \text{}. 1) Ki deve ter K maiúsculo.
  • @Nayuki “A primeira letra de cada prefixo é, portanto, idêntica aos prefixos SI correspondentes, exceto para ” K “, que é usado alternadamente com ” k “, enquanto no SI, apenas o k minúsculo representa 1000. ” – en.wikipedia.org/wiki/Binary_prefix

Resposta

Trabalho profissionalmente em TI desde meados da década de 1980. Minha prática atual é escrever o que quer que seja, por exemplo, KB ou KiB que quero dizer na época, com KB significando $ 10 ^ 3 $ e KiB significando $ 2 ^ {10} $. Se estou falando sobre a RAM em uma máquina, escreverei, por exemplo, “64 MiB” e se estou falando sobre o tamanho de fábrica e como comercializado de um drive de disco eu “escreverei” 1 TB “. Não , entretanto, estou preparado para usar palavras como” mebibyte “em uma conversa. Talvez um dia eu mude minhas abreviações verbais de ex. “meg” para “meb”, mas “não estou lá ainda.

Comentários

  • I ‘ Nunca vi, em um período de tempo semelhante, MiB etc. usado para RAM. KB / MB / GB / TB em relação à RAM sempre é baseado em 1024.
  • Se você ‘ está usando K maiúsculo para quilo , você ‘ está errado.(Já vi pessoas misturando milímetros com megamolar.)
  • Acho que ‘ d antes de dizer / escrever ” megabyte binário ” para MiB do que ” mebibyte “, mas a abreviatura estaria OK .
  • @MontyHarder: Do ponto de vista da pronúncia, que tal em-byte?
  • @supercat ” em-byte ” soa como uma abreviatura de megabyte. Portanto, ele não ‘ resolve a ambigüidade da mesma forma que o MiB. Acho MiB uma abreviatura útil (o ” i ” infixo representa ” b_i_nary “), mas a palavra ” mebibyte ” em si não está saindo da minha boca suavemente, se for o caso.

Resposta

A confusão básica está na notação na KB (base 2 derivada) vs nível de unidade kB (unidade SI), e é útil entender a origem do uso da unidade derivada de base 2.

Um computador é uma máquina binária.

No nível básico, o endereçamento da memória é binário. Normalmente, no nível programático, o endereçamento é digitado em formato hexadecimal (originalmente era binário); no entanto, hexadecimal também é derivado de base 2 (é base 16 ou 2 4 ) e, portanto, é diretamente compatível.

Começar no nível da base de conhecimento para comunicar o entendimento aqui é útil, pois os conceitos de unidades derivadas de base 2 existem desde antes de MB estar em uso comum (sem diferenciação no prefixo da unidade SI).

Em um controlador de memória IC, se você imaginar que os seletores de endereço são uma linha de interruptores (portas lógicas binárias) e dependendo de como elas são comutadas, você obtém a memória lida de um endereço específico nas linhas de dados. Os dados são armazenados e retornados como bytes.

Sempre houve um número limitado de linhas de endereço disponíveis para endereçar a memória, e acontece que o uso de conjuntos de endereços completos binários para um determinado número de bits de endereçamento são números de base 2. Portanto, em uma máquina de 4 KB, existem 12 linhas de endereço que representam os endereços de 0 a 4095 (4096 bytes). Essas 12 linhas de endereço correspondem aos endereços 111111111111 possíveis em binário, 0FFF em hexadecimal ou 4096 bytes em decimal. Não seria lógico limitar o mapeamento de endereço a 4000 bytes por causa da convenção decimal quando há 12 bits de endereçamento disponíveis.

Essa lógica seguiu inicialmente também para os discos rígidos, onde os blocos são grupos de bytes acessados por endereço, no entanto (e não verifiquei), ouvi dizer que talvez os fornecedores de disco rígido achem menos crítico usar formatos de “endereçamento redondo”, principalmente considerando o seguinte.

Todos os valores padrão na terminologia de computador são base 2 derivada, embora, para fins de marketing, alguns fornecedores de disco rígido de 20 MB possam não ser tão grandes quanto alguns que mantêm a convenção. É conveniente aplicar 20 MB em algo, mesmo que não contenha tantos blocos e seja mais fácil de fabricar porque há menos densidade de dados necessária.

Discos rígidos IDE iniciais (havia outros sistemas anteriores antes do IDE) , antes do sistema Logical Block Addressing (LBA) ser introduzido, costumava ser configurado por cilindros, cabeças e setores (CHS). Todo o sistema de endereçamento era binário e até mesmo utilitários Unix padrão usavam blocos de 1024 bytes para exibição. [1] Ferramentas padrão como Conky ainda usa a base 2 para exibição de informações de RAM e HDD, embora use o formato estilo GiB para evitar confusão. Mais tarde, o sistema de endereçamento LBA permitiu o mapeamento lógico do formato CHS conforme o tamanho do disco rígido aumentava, no entanto, o LBA simplesmente aplica o endereçamento do formato CHS internamente no controlador onboard do disco rígido e permite que o sistema operacional (e o programador) apenas considere os blocos lógicos.

A lógica de base 2 segue para números maiores, por exemplo, 1111111111111111111111111111111 bytes é 2 GB em uso padrão ou 7FFFFFFF bytes em hexadecimal. É apenas em decimal onde parece desarrumado como 2.147.483.647 bytes, mas a tecnologia e as convenções subjacentes não são decimais. Os computadores não são máquinas decimais; são máquinas binárias.

O endereçamento de rede também usa máscaras binárias em cada um dos milhões de pacotes de dados a cada segundo para garantir o roteamento correto, mas, faz muito tempo que a porção de dados de um pacote de rede se parece com um número de base 2. Provavelmente a camada mais externa do pacote ainda faz {conjecturas}.

Você sem dúvida precisará mencionar que há confusão, especialmente quando se trata de marketing de produtos como sendo de um tamanho específico, e que há algumas implementações de programa para exibição de valores usando unidades SI (não é mais inconveniente ou mais lento (na verdade, provavelmente ainda é mais lento, mas em computadores modernos não é mais perceptível} para os programadores de computador implementarem o decimal, especialmente para exibição), mas não pode haver dúvida sobre o uso do computador de que a resposta correta é a convenção de base 2.

1024 KB é o padrão JEDEC 100B.01 , o que significa que 1 KB é 1024 bytes.

rel:
[1] Wikipedia – setor da cabeça do cilindro (CHS) https://en.wikipedia.org/wiki/Cylinder-head-sector

Esta questão foi amplamente explorada.

SuperUser – Tamanho dos arquivos no sistema operacional Windows. (É KB ou kB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

A maioria dos sistemas operacionais e a grande maioria dos dispositivos que lidam com memória / armazenamento usa os prefixos K para Kilo significando 1024 bytes, então quando eu obtenho RAM que diz “um módulo de 4 GB, eu sei que é” 4 Gibi-Bytes (4 * 1024 * 1024 * 1024) e não Giga-Bytes (4 * 1000 * 1000 * 1000).


Quora – Onde usamos 1 kB = 1000 bytes, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? E onde usamos 1 KB = 1.024 bytes, 1 MB = 1.024 KB, 1 GB = 1.024 MB, 1 TB = 1.024 GB? – https://www.quora.com/Where-do-we-use-1-kB-1000-bytes-1-MB-1000-kB-1-GB-1000-MB-1-TB-1000-GB-And-where-do-we-use-1-KB-1024-bytes-1-MB-1024-KB-1-GB-1024-MB-1-TB-1024-GB

A segunda ideia foi formulada pela indústria de informática 1 KB = 1.024 bytes 1 MB = 1024 KB 1GB = 1024 MB Observe que estou usando B maiúsculo e não b maiúsculo, e B maiúsculo implica bytes O b minúsculo não deve ser usado. Este é sempre o caso e é verdadeiro para coisas relacionadas a computadores


A primeira ideia foi formulada pela indústria de telecomunicações e é aplicável não para o tamanho dos dados (bits e bytes), mas para a velocidade dos dados (bits por segundo ou bytes por segundo) 1Kbps = 1000 bps (bits por segundo) 1Mbps = 1024 Kbps 1 Gbps = 1024 Mbps Observe que estou usando be pequeno e não B maiúsculo, e b pequeno implica bits O B maiúsculo não deve ser usado. Este é sempre o caso e é verdadeiro para coisas relacionadas à transmissão de dados

Comentários

Resposta

Estou adicionando uma segunda resposta para esclarecer alguns problemas com a pergunta e para eliminar a confusão óbvia nas respostas.

  1. A pergunta afirma incorretamente que a comunicação IEC vinculada recomenda KB significar 1000. O link refere-se apenas a “quilo”.

  2. kB pode significar o kilobyte SI, ou seja, 1000 bytes

  3. KB significa e sempre significou 1024 bytes.

O número 3 é essencialmente a única definição útil em engenharia de software. Observe que K é maiúsculo.

Há também KiB, que é equivalente a KB . Observe que a palavra kilo é sempre representada por k minúsculo. Para OP, ensinar KB como 1000 é sempre totalmente errado.

O acima não se aplica a MB e superiores. Nesse caso, o uso é ambíguo e depende do contexto.

Comentários

  • Observe que, embora KB como 1000 possa estar totalmente errado, ele ‘ também é necessário ensinar que muitas pessoas fazem isso da forma errada e, portanto, os alunos nunca devem confiar que KB significa 1024 sem um maior conhecimento do contexto.
  • @Peter concordou 100% Uma ampla discussão da história e do contexto de uma forma interessante e divertida ajudaria a diferenciar uma educação medíocre de uma educação decente.
  • De que forma está o número 3 ” a única definição útil “?
  • @immibis – dizia-se ser ” a única definição útil em engenharia de software “. Devido à natureza binária da arquitetura e do software do computador, ele ‘ está provavelmente correto. Fora das discussões sobre computadores e, particularmente, software, provavelmente não é correto.
  • @KevinFegan: As únicas situações em que posso pensar em que usar um K maiúsculo para 1000 não deve ser visto como simplesmente errado. onde uma minúscula ” k ” não está disponível, por exemplo, algumas situações envolvendo sinalização ou conjuntos de caracteres limitados.

Resposta

Ensine a eles que, sem contexto, você não sabe, porque certamente há pessoas por aí que usarão k para significar 1000 e outros que usará k para significar 1024. O que é correto não é relevante porque ambos os usos existem por aí.Isso deixa qualquer uso de “k” com bytes ambíguos, a menos que quem forneceu o número também especifique o que eles significam.

Por esta razão, eu recomendo que você ensine que ao fornecer um valor em bytes, sempre use um prefixo IEC como Ki em vez disso. 10 kB é ambíguo, 10 KiB não é.

Podemos declarar que certos usos estão “errados” todos nós quero, e não estou dizendo que isso seja necessariamente injustificado, mas isso não faz com que esses usos desapareçam.

Comentários

  • Não vi muitos computadores baseados em decimais recentemente, então Kb ao se referir a computador não é ‘ t ambíguo
  • @Neuromancer Seja ‘ ambíguo ou não não tem nada a ver com computadores baseados em decimais …
  • @smithkm Mostre-me onde k pequeno k é ambíguo.
  • @Neuromancer Kb significa … Talvez kb. Oh, a velocidade dos modems telefônicos que eram comuns até o início dos anos 2000 era dada em kb / s.
  • @rexkogitans Era Kbps para kilobits por segundo. Claro que alguns utilitários de rede o escalariam para bytes e isso seria KB / s (geralmente algo assim), mas os modems eram Kbps, assim como agora podem ser Mbps ou Gbps (e assim por diante). Ou se você ‘ for extremamente improvável, sim Kbps. (Talvez alguns tenham escrito como kbps)

Resposta

Ensine os dois, mas concentre-se em 1024 nos problemas. Eles precisarão converter largura de banda, etc. em rede e outros cursos.

Converter usando 1000 é fácil, mas 1024 é complicado, então concentre-se nisso, o conhecimento os ajudará em arquitetura de computador, montagem e cursos de rede. Eles “terão que trabalhar com isso algum dia, então prepare-os

Comentários

Resposta

Todas as outras respostas fornecem razões sólidas para ensinar que ambas existem e quão complicada está a situação atual. Isso é importante, mas não esclarece o que os alunos devem preferir usar. Essa resposta enfoca o lado prático do que os alunos podem fazer; depois de aprender sobre a situação atual com as outras respostas.

Assuma o pior caso

Como acontece com todas as incertezas na computação, a opção mais segura é sempre assumir o pior -cenário do caso. Ou seja, para minimizar a chance de que uma suposição incorreta cause bugs.

Nessa situação, o seguinte pode ser aplicado para cobrir suas bases:

  • Suponha a quantidade de recursos que você tem está em múltiplos de 1000 bytes.

  • Suponha que os recursos usados por bibliotecas de terceiros etc. estejam em múltiplos de 1024 bytes.

  • Forneça quaisquer valores para os recursos que você usar como múltiplos de 1000 bytes.

Essas três suposições garantem que:

  • Na pior das hipóteses, você pensará que tem menos recursos do que realmente possui. Por exemplo, supondo que 4kB de RAM significa “4000 bytes”, pode significar que você planeja ter 96 bytes a menos do que realmente tem. Mas isso significa que você nunca planejará ter 96 bytes a mais do que realmente tem.

  • Na pior das hipóteses, você assumirá que a biblioteca que disse que usa 2kB de RAM significava que usa 48 bytes a mais de memória do que realmente usa (suponha que significa 2048, não 2.000). Mas você nunca planejará isso usando 48 bytes a menos de RAM do que realmente usa.

  • Na pior das hipóteses, terceiros assumirão que seu programa usa mais recursos do que usa, assumindo que você quis dizer 1024 bytes por kB e não 1000. Mas você nunca acidentalmente liderará alguém pense que usa menos do que realmente usa.

Claro, “não é ideal ter que” perder “recursos desnecessariamente. Mas, no caso geral, a pequena diferença provavelmente não será suficiente (especialmente como um aluno) para inviabilizar seu projeto. Nesses casos específicos em que isso ocorre, eles já deveriam estar medindo as pegadas exatas de tudo e não assumindo os tamanhos de nada apenas da documentação.

O benefício, entretanto, é que suas suposições sobre o que outra pessoa quis dizer com “2kB” não irão prejudicá-lo quando estiverem erradas. Que, neste caso específico, e como uma lição geral para seus alunos – acho que é importante.

Resposta

“Qual conversão devo ensinar para meus alunos de graduação? ”

Esses cursos de graduação são relacionados à engenharia? Se sim, eu “d com 1024, com base na matemática binária, pois é nisso que a engenharia se baseia.

Você pode contar os bits em seus dedos:

  • $ 1 $ dedo = $ 2 $ estados, 0 e 1.
  • $ 2,4,8,16,32,64, 128, 256, 512, 1024 $.O maior valor decimal que pode ser realizado é 1 a menos, enquanto o número de estados representados é $ 2 ^ x $ lista.
  • $ 2 ^ 1 -1 = 1 $. Portanto, 0,1
  • $ 2 ^ 2 – 1 = 3 $. Portanto 0,1,2,3
  • $ 2 ^ 3 – 1 = 7 $. Portanto, 0,1,2,3,4,5,6,7
  • etc. até $ 2 ^ 8 – 1 = 255 $. Portanto, 256 estados, de 0 a 255.

Os fabricantes podem anunciar como 2,2 TB, mas o sistema operacional relatará como 2 TB, ou talvez até 2 TB utilizáveis.

Comentários

  • Incorretos, infelizmente. Sistemas operacionais diferentes relatam de maneira diferente. Especificamente os frutados.
  • Incorretos, felizmente. Os sistemas operacionais decentes relatam os tamanhos corretamente, com GB = 1 bilhão de bytes. Os frutados começaram.
  • @ gnasher729: Dado que as unidades de alocação são múltiplos de 512 bytes em quase todos os sistemas operacionais, relatar a utilização do disco em unidades de 1024 bytes faz muito mais sentido para mim do que relatar em base dez unidades.

Resposta

Em meus 26 anos como engenheiro de software profissional, nunca encontrei KB para significa qualquer coisa diferente de 1024.

Ensine a eles as definições que desejar e certifique-se de que eles saibam que 1024 é a única útil.

Comentários

  • Os comentários não são para discussão extensa; esta conversa foi movida para o bate-papo . A discussão é para bate-papo, não para comentários, e qualquer discussão posterior nos comentários será excluída.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *