¿Debo enseñar que 1 kB = 1024 bytes o 1000 bytes?

¿Qué conversión debo enseñar a mis estudiantes de pregrado? ¿Que 1 kB son 1024 bytes (binario) como todos aprendieron en los noventa o la reciente conversión «amigable» liderada por la industria que dice que 1 kB son de hecho 1000 bytes (decimal)?

Mi sentimiento inmediato va hacia la conversión binaria, pero cuando IEC dice lo contrario y los principales sistemas operativos deciden la conversión decimal (Mac OS X ≥ 10.6 y Ubuntu ≥ 10.10 ahora usan los prefijos SI exclusivamente para referirse a potencias de 1000) «Ya no estoy tan seguro.

Comentarios

  • Tenga en cuenta que el prefijo SI » kilo » siempre se escribe con » k «. Personalmente, estoy acostumbrado a ver » kB «, incluso cuando no es estrictamente ‘ ta SI prefijo.
  • xkcd
  • La RAM tiene una sola base en kiB, Mib, GiB y discos duros en kB, MB, GB. Ambos a menudo se denominan kB, M B, GB. Por lo tanto, no siempre se trata de programar.
  • Lo que encuentro divertido es que la versión de potencia de dos (la que ‘ es claramente lo que generalmente se desea ) no tiene justificación alguna para el uso del prefijo » Kilo » – it ‘ s solo que una potencia arbitraria de dos se acerca bastante a una potencia arbitraria de 10, por lo que ignoramos la diferencia por la conveniencia de poder decir » K » (o » M » o » G «) porque » 0x0200 » abyte es demasiado difícil de decir.
  • Byte no es una unidad SI. La unidad SI para la cantidad es el mol. 1 GB equivale aproximadamente a 1,66 femtomole bytes

Respuesta

Debería enseñar ambos, y probablemente quiera usar el unidad binaria. Cuando se habla de la diferencia, puede ser útil decirles cómo diferenciarlos al leerlos:

El kilo de SI es k :
$ 1 \ \ text {kB (kilobyte)} = 10 ^ {3} \ \ text {bytes} = 1000 \ \ text {bytes} $

Mientras que el kibi- binario es Ki :
$ 1 \ \ text {KiB (kibibyte)} = 2 ^ {10} \ \ text {bytes} = 1024 \ \ text {bytes} $

Noté que usó KB en su pregunta para referirse a ambos tamaños; quizás también debería señalar que KB podría interpretarse como cualquiera de estos prefijos (aunque Wikipedia sugiere que se usa con mayor frecuencia en lugar de KiB). En su posición, sugeriría aclarar a cuál se refiere si usa esta notación.

(Si bien está repasando unidades confusas, una diferencia relacionada en las unidades de escritura es que la b minúscula es bits, la B mayúscula es bytes; una diferencia de ocho veces es mucho más significativa que el 2.4%.)

Comentarios

  • Además de enseñar ambos, debe enseñar que k / kilo puede significar dependiendo del contexto / quién ‘ lo usa. El hecho de que exista croqueta no ‘ t significa que a la gente le gusta o realmente lo usa.
  • Si cubre bits y bytes, también debe mencionar al menos brevemente que un » kilobit » es casi siempre de 1000 bits (porque la red) y un » kilobyte » casi siempre es de 1024 bytes (porque todo -excepto-para-redes).
  • 1MiB es ≈5% más grande que 1MB, 1GiB es 7.4% más grande que 1GB y 1TiB es casi y 10% más grande que 1Tb.
  • Siempre me enseñaron que la base es binaria, una palabra de 8 bits es un Byte, una palabra de 16 bits es de dos Bytes y, siguiendo la convención binaria, 1KB es 1024 Bytes , 1MB es 1024 KB, 1GB es 1024 MB, 1TB es 1024 GB – y en binario, la unidad base de la computación, tiene mucho sentido. Siempre he encontrado que el intento de adopción del uso de SI es una confusión incorrecta e innecesaria. Dicho esto, como educador, un estudiante deberá comprender la confusión.
  • » ¿Debo enseñar que 1 KB = 1024 bytes o 1000 bytes ? » Sí. 🙂

Responder

Deberías enseñarles que «está un desastre irreparable , y el trabajo de su generación es enseñar a próxima generación para usar los prefijos estándar que suenan tontos , de modo que cuando finalmente se retiren (y los veteranos actuales se eliminen más permanentemente del argumento), finalmente puede ser un consenso.

Tal como están las cosas actualmente, todos los prefijos son incognoscibles sin contexto.Un megabit de red es $ 10 ^ 6 $ bits, un megabyte de sistema de archivos es $ 2 ^ {20} $ bytes, un megabyte de disco duro es bastante cercano a $ 10 ^ 6 $ bytes, y un megapíxel es «probablemente un millón de píxeles, a quién le importa. «

Comentarios

  • El consenso parece ser que el tamaño del disco es la aproximación simple más cercana menor que n × 1000 ^ m. Por lo tanto, 2.057 × 10 ^ 12 bytes se anunciarán 2 TB, no 2.1 TB.
  • I ‘ d tenga en cuenta que los prefijos rara vez (básicamente nunca) tienen su significado binario con unidades que no sean bytes . Un megapíxel es 1 millón de píxeles, un megabit es un millón de bits.
  • El megabyte del sistema de archivos es $ 2 ^ {20} $ bytes, tal vez. A veces, en el mismo SO, ‘ verá » megabytes » (incluida la precisión decimal) siendo $ 10 ^ 6 $ en algunas de las herramientas y $ 2 ^ {20} $ en otras. La mayoría de las veces en herramientas de línea de comandos frente a herramientas de GUI, pero conozco un sistema operativo en el que incluso las diferentes herramientas de GUI proporcionadas por el sistema operativo no están de acuerdo con esto …

    En realidad, debe enseñarles a ambos para que se les advierta que el uso no es consistente. Luego, puede elegir uno como estándar en su curso en el futuro.

    Lo que elija dependerá un poco de lo que esté enseñando. Si se trata de cómo evaluar discos duros, etc., $ K = 1000 $ funciona ahora. Para la mayoría de la programación, sin embargo, $ K = 2 ^ {10} = 1024 $ es probablemente lo mejor.

    Lamentablemente, el doble significado probablemente se deba a que los fabricantes intentan evitar confusión en las mentes de los clientes poco sofisticados.

    Comentarios

    • Kilobyte fue acuñado mucho antes que el kilobyte de 1,000 bytes en 1998. IEC realmente hizo un lío de cosas.
    • Sí, pero kilo = 1000 se remonta a 1795: etymonline.com/word/kilo- Así que los no geeks tienen alguna precedencia aquí, tal vez. Pero más importante: si les enseña una sola cosa como » lo correcto «, los está configurando para que se confundan más adelante. El mundo está desordenado. Los maestros no deben ‘ t pretender que no es ‘ t. Ser dogmático no es ‘ t muy útil.
    • Además, kB / KB no ‘ t ayuda con MB, GB, TB que a) son mucho más relevantes b) tienen diferencias mucho mayores.
    • » Lamentablemente, los significados duales probablemente se deben a que los fabricantes intentan evitar confusiones en los mentes de clientes poco sofisticados » Es más probable que los anunciantes quieran que su producto suene más grande de lo que realmente es. ¿Por qué anunciar un disco duro de 3TB usando 1TB = 1024 * 1024 * 1024 * 1024 bytes cuando puede anunciar un disco duro de 3.3TB usando el 1TB = 1000 * 1000 * 1000 * 1000 bytes aprobado por el abogado? 3.3 es más grande que 3, ¿verdad?
    • @Readin O, como lo veo más a menudo, una unidad de 3TB que en realidad tiene 2.7TB de almacenamiento total.

    Respuesta

    La diferencia entre brindarles a los estudiantes una discusión adecuada sobre este tema y simplemente enseñarles uno u otro es la diferencia entre ser un verdadero educador y ser un recitador de hechos.

    Si no existe una única definición correcta de KB para usted, ¿por qué inculcaría algo diferente a sus estudiantes? La respuesta a su pregunta es, pues, obvia en su formación. Su responsabilidad como maestro es transmitir una comprensión del problema, no reducirlo a uno u otro hecho que sabe que es menos que cierto.

    Comentarios

    • Estoy de acuerdo, pero antes de brindar una discusión adecuada con mis alumnos, ‘ estoy brindando una discusión adecuada aquí, que era mi intención en primer lugar ( en lugar de obtener una u otra respuestas simples).

    Respuesta

    Sí Estoy de acuerdo con otras respuestas, enseño ambas y también noto la similitud.

    La diferencia

    • $ \ text {ki} = 1024 = 2 ^ {10} $
    • $ \ text {k} = 1000 = 10 ^ 3 $
    • $ \ text {k}, \ text {M}, \ text {G}, \ text {T}, \ text {P} $ a veces se usa para significar $ \ text {ki}, \ text {Mi}, \ text {Gi}, \ text {Ti}, \ text {Pi} $

    La similitud

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

    Matemáticas rápidas

    $ 64 \ text {bits} = (6 \ times 10 + 4) \ text {bits} = \ text {ki} ^ 6 \ times 2 ^ {4} = 16 \ text {direcciones Ei} $

    Esto tiene alguna similitud y alguna diferencia con el sistema base 10 que ellos (deberían) conocer. Primero lo dividimos en bloques de 10 (en lugar de 3), el resto lo convertimos a base 10, el resto es el mismo.

    Donde se usa (principalmente)

    Es importante mostrar dónde se utilizan los 2 sistemas. Mientras que algunas respuestas dicen que nunca han visto el sistema SI basado en $ 1000 $ usado en computación. Resulta que el sistema SI se usa mucho, dependiendo de lo que se esté midiendo.

    • IEC 60027-2 A.2 e ISO / IEC 80000 p. Ej. $ \ text {ki} $ :
      • medidas de la memoria primaria: RAM, RAM, caché.
      • medida del tamaño de los archivos , tamaños de partición y tamaños de disco dentro del sistema operativo.
    • Unidades SI, por ejemplo $ \ text {k} $ :
      • medidas de dispositivos de memoria secundarios: discos duros, SSD.
      • velocidades de red.
      • Velocidades de CPU / memoria / bus.
      • Todas las demás velocidades.

    Sin embargo, el uso del símbolo $ \ text {ki} $ en este momento no siempre se usa.


    ver también https://en.wikipedia.org/wiki/Binary_prefix

    Comentarios

    • Esta respuesta plantea la pregunta.
    • @prl Si quiere evitar la pregunta (respondiendo una pregunta diferente), entonces está parcialmente en lo cierto. Estoy tratando de extenderme sobre otras respuestas. Y para dar algunos consejos sobre «Cómo», donde la pregunta era «Cuál».
    • En mi opinión, esta es la mejor respuesta, pero podría mejorarse ligeramente si se menciona explícitamente el estilo . Es decir. De la misma forma que existen diferentes estilos para citar artículos, o para delimitar listas (vide coma Oxford), existen diferentes estilos para formatear números. En una publicación de IEC posterior a 2000, puede asumir que el estilo de la casa será SI / * bi. Otras organizaciones / editores pueden usar otros estilos.
    • Respuesta bastante buena. Dos detalles: 0) Para todos los prefijos (k, M, Mi, Gi, etc.), use el tipo romano, no cursiva; Sugiero usar \text{}. 1) Ki debe tener una K mayúscula.
    • @Nayuki “La primera letra de cada prefijo es, por lo tanto, idéntica a los prefijos SI correspondientes, excepto por » K «, que se usa indistintamente con » k «, mientras que en SI, solo el k minúscula representa 1000 «. – en.wikipedia.org/wiki/Binary_prefix

    Respuesta

    He trabajado en TI profesionalmente desde mediados de la década de 1980. Mi práctica actual es escribir lo que sea, por ejemplo, KB o KiB que quiero decir en ese momento, con KB que significa $ 10 ^ 3 $ y KiB significan $ 2 ^ {10} $. Si me refiero a la RAM en una máquina, escribiré, por ejemplo, «64MiB» y si me refiero al tamaño de fabricación y comercialización de un unidad de disco «Escribiré» 1TB «. Sin embargo, no estoy preparado para usar palabras como» mebibyte «en una conversación. Tal vez algún día cambie mis abreviaturas verbales de eg «meg» a «meb» pero «no he llegado todavía.

    Comentarios

    • I ‘ nunca he visto, en un período de tiempo similar, MiB, etc. utilizado para RAM. KB / MB / GB / TB en lo que respecta a la RAM siempre se basa en 1024.
    • Si ‘ Estás usando K mayúscula para kilo , ‘ estás equivocado.(He visto gente mezclando milímetro con megamolar.)
    • Creo que ‘ antes digo / escribo » megabyte binario » para MiB que » mebibyte «, pero la abreviatura estaría bien .
    • @MontyHarder: Desde el punto de vista de la pronunciación, ¿qué tal em-byte?
    • @supercat » em-byte » suena como una abreviatura de megabyte. Por lo tanto, no ‘ t resuelve la ambigüedad como lo hace MiB. Me parece que MiB es una abreviatura útil (el » i » infix representa » b_i_nary «), pero la palabra » mebibyte » en sí misma no sale de mi boca sin problemas, en todo caso.

    Respuesta

    La confusión básica está en la notación en la KB (derivada de la base 2) vs nivel de unidad kB (unidad SI), y es útil comprender el origen del uso de la unidad derivada de base 2.

    Una computadora es una máquina binaria.

    En el nivel básico, el direccionamiento de memoria es binario. Por lo general, en el nivel programático, el direccionamiento se ingresa en formato hexadecimal (originalmente era binario); sin embargo, el hexadecimal también se deriva de la base 2 (es base 16 o, 2 4 ) y, por lo tanto, es directamente compatible.

    Comenzar en el nivel de KB para comunicar comprensión aquí es útil ya que los conceptos de unidades derivadas de base 2 han existido desde antes de que MB fuera de uso común (sin diferenciación en el prefijo de la unidad SI).

    En un controlador de memoria IC, si imagina que los selectores de dirección son una fila de interruptores (puertas lógicas binarias) y, dependiendo de cómo se conmuten, se obtiene la lectura de la memoria desde una dirección específica en las líneas de datos. Los datos se almacenan y devuelven como bytes.

    Siempre ha habido un número limitado de líneas de dirección disponibles para la memoria de direcciones, y sucede que el uso de conjuntos de direcciones completos binarios para un número determinado de bits de direccionamiento es base 2 números. Entonces, en una máquina de 4 KB, hay 12 líneas de dirección que representan las direcciones 0 a 4095 (4096 bytes). Estas 12 líneas de dirección corresponden a las 111111111111 direcciones posibles en binario, 0FFF en hexadecimal o 4096 bytes en decimal. No sería lógico limitar la asignación de direcciones a 4000 bytes por el bien de la convención decimal cuando hay 12 bits de direccionamiento disponibles.

    Esta lógica se siguió inicialmente también a los discos duros, donde los bloques son grupos de bytes a los que se accede por dirección, sin embargo (y no la he verificado), escuché que quizás los proveedores de discos duros encuentran menos crítico el uso de formatos de «direccionamiento redondo», particularmente considerando lo siguiente.

    Todos los valores estándar en terminología informática son base 2, aunque, con fines de marketing, algunos proveedores de discos duros de 20 MB pueden no ser tan grandes como algunos mantienen la convención. Es conveniente colocar 20 MB en algo incluso si no contiene tantos bloques y es más fácil de fabricar porque se requiere menos densidad de datos.

    Los primeros discos duros IDE (había otros sistemas anteriores antes del IDE) , antes de que se introdujera el sistema Logical Block Addressing (LBA), solía ser configurado por cilindros, cabezales y sectores (CHS). Todo el sistema de direccionamiento era binario, e incluso las utilidades estándar de Unix usaban bloques de 1024 bytes para la visualización. [1] Herramientas estándar como Conky todavía usa la base 2 para mostrar la información de RAM y HDD, aunque usa el formato de estilo GiB para evitar confusiones. Más tarde, el sistema de direccionamiento LBA permitió el mapeo lógico del formato CHS a medida que crecía el tamaño del disco duro, sin embargo, LBA simplemente aplica el direccionamiento del formato CHS internamente en el controlador integrado del disco duro y permite que el sistema operativo (y el programador) simplemente considere los bloques lógicos.

    La lógica de base 2 sigue hasta números más grandes, por ejemplo, 1111111111111111111111111111111 bytes son 2GB en uso estándar o 7FFFFFFF bytes en hexadecimal. Es solo en decimal donde parece desordenado como 2,147,483,647 bytes pero la tecnología y las convenciones subyacentes no son decimales. Las computadoras no son máquinas decimales; son máquinas binarias.

    El direccionamiento de red también usa máscaras binarias en cada uno de los millones de paquetes de datos cada segundo para asegurar el enrutamiento correcto pero, ha pasado mucho tiempo desde que la porción de datos de un paquete de red se asemeja a un número de base 2. Probablemente la capa más externa del paquete todavía lo hace {conjetura}.

    Sin duda, deberá mencionar que existe confusión, especialmente cuando se trata de la comercialización de productos como de un tamaño particular, y que existen algunas implementaciones de programas para la visualización de valores utilizando unidades SI (no es ya es más inconveniente o más lento (en realidad, probablemente sea más lento, pero en las computadoras modernas ya no es perceptible} que los programadores de computadoras implementen el decimal, particularmente para la visualización) pero, no puede haber duda sobre el uso de la computadora que la respuesta correcta es la convención base 2.

    1024 KB es el estándar JEDEC 100B.01 , lo que significa que 1 KB son 1024 bytes.

    rel:
    [1] Wikipedia: sector de cabeza de cilindro (CHS) https://en.wikipedia.org/wiki/Cylinder-head-sector

    Esta pregunta se ha explorado ampliamente.

    SuperUser: tamaño de los archivos en el sistema operativo Windows. (¿KB o KB?) – https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb

    La mayoría de los sistemas operativos y la gran mayoría de los dispositivos que se ocupan de la memoria / almacenamiento usan los prefijos K para que Kilo signifique 1024 bytes, así que cuando obtengo una RAM que dice que es un módulo de 4GB, sé que son 4 Gibi-Bytes (4 * 1024 * 1024 * 1024) y no Giga-Bytes (4 * 1000 * 1000 * 1000).


    Quora – ¿Dónde usamos 1 kB = 1000 bytes, 1 MB = 1000 kB, 1 GB = 1000 MB, 1 TB = 1000 GB? ¿Y dónde usamos 1 KB = 1024 bytes, 1 MB = 1024 KB, 1 GB = 1024 MB, 1 TB = 1024 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

    La segunda idea fue formulada por la industria informática 1 KB = 1024 bytes 1 MB = 1024 KB 1GB = 1024 MB Aviso Estoy usando mayúscula B y no minúscula b, y la mayúscula B implica bytes La minúscula b no debe usarse Este es el caso siempre y es cierto para cosas relacionadas con computadoras


    La primera idea fue formulada por la industria de las telecomunicaciones y es aplicable no para el tamaño de los datos (bits y bytes) sino para la velocidad de los datos (bits por segundo o bytes por segundo) 1Kbps = 1000 bps (bits por segundo) 1Mbps = 1024 Kbps 1Gbps = 1024 Mbps Observe que estoy usando una b pequeña y no una B mayúscula, y la b pequeña implica bits. La B mayúscula no debe usarse. Este es el caso siempre y es cierto para las cosas relacionadas con la transmisión de datos

    Comentarios

    Respuesta

    Estoy agregando una segunda respuesta para aclarar algunos problemas con la pregunta y aclarar la confusión obvia en las respuestas.

    1. La pregunta indica incorrectamente que la comunicación IEC vinculada recomienda que KB signifique 1000. El enlace se refiere solo a «kilo».

    2. KB puede significar el kilobyte SI, es decir 1000 bytes

    3. KB significa y siempre ha significado 1024 bytes.

    El número 3 es esencialmente la única definición útil en ingeniería de software. Tenga en cuenta que la K está en mayúscula.

    También hay KiB que es equivalente a KB . Tenga en cuenta que la palabra kilo siempre está representada por una k pequeña. Para que OP enseñe KB como 1000 siempre es completamente incorrecto.

    Lo anterior no se aplica a MB y superiores. Allí, el uso es ambiguo y depende del contexto.

    Comentarios

    • Tenga en cuenta que si bien KB como 1000 puede estar completamente equivocado, ‘ s también es necesario para enseñar que muchas personas hacen esto mal y, por lo tanto, los estudiantes nunca deben confiar en que KB significa 1024 sin un mayor conocimiento del contexto.
    • @Peter estuvo de acuerdo 100% Una discusión amplia de la historia y el contexto de una manera interesante y entretenida ayudaría a diferenciar una educación mediocre de una decente.
    • De qué manera es el número 3 » la única definición útil «?
    • @immibis – se decía que era » la única definición útil en ingeniería de software «. Debido a la naturaleza binaria de la arquitectura y el software de la computadora, ‘ probablemente sea correcto. Fuera de las discusiones sobre computadoras y particularmente software, lo más probable es que no sea correcto.
    • @KevinFegan: Las únicas situaciones en las que puedo pensar en las que usar una K mayúscula para 1000 no debería considerarse simplemente incorrecto serían esas donde una » k » minúscula no está disponible, algunas situaciones que involucran señalización o conjuntos de caracteres limitados.

    Respuesta

    Enséñeles que sin contexto, no lo sabe porque seguramente hay personas que usarán k para significar 1000 y otros quién usará k para significar 1024. Lo que es correcto no es relevante porque ambos usos están disponibles.Esto deja ambiguo cualquier uso de «k» con bytes, a menos que quien haya dado el número también haya especificado lo que significan.

    Por esta razón, le recomiendo que enseñe que al dar un valor en bytes, siempre use un prefijo IEC como Ki en su lugar. 10 kB es ambiguo, 10 KiB no lo es.

    Podemos declarar que ciertos usos son «incorrectos» todos quiero, y no digo que sea necesariamente injustificado, pero eso no hace que esos usos desaparezcan.

    Comentarios

    • No se han visto muchos Computadoras basadas en decimales recientemente, por lo que Kb cuando se refiere a la computadora no es ‘ t ambiguo
    • @Neuromancer Si es ‘ s ambiguo o no no tiene nada que ver con computadoras basadas en decimales …
    • @smithkm Muéstrame dónde k pequeño k es ambiguo.
    • @Neuromancer Kb significa … Quizás kb. Oh, la velocidad de los módems telefónicos que eran comunes hasta principios de la década de 2000 se expresó en kb / s.
    • @rexkogitans Era Kbps para Kilobits por segundo. Por supuesto, algunas utilidades de red lo escalarían a bytes y serían KB / s (generalmente algo así), pero los módems eran Kbps como ahora, podría ser Mbps o Gbps (y así sucesivamente). O si ‘ es extremadamente improbable que sí, Kbps. (Quizás algunos lo escribieron como kbps)

    Respuesta

    Enséñeles a ambos pero enfóquese en 1024 en los problemas. Necesitarán convertir ancho de banda, etc. en redes y otros cursos.

    Convertir usando 1000 es fácil pero 1024 es complicado, así que enfóquese en eso, el conocimiento les ayudará en los cursos de arquitectura, ensamblaje y redes de computadoras. Algún día tendrán que trabajar con él, así que prepárelos

    Comentarios

    Responder

    Todas las otras respuestas dan razones sólidas para enseñar que ambos existen y lo mal que está la situación actual. Esto es importante, pero no aclara lo que los estudiantes deberían preferir usar por sí mismos. Esta respuesta se centra en el lado práctico de lo que pueden hacer los estudiantes; después de conocer la situación actual de las otras respuestas.

    Asume el peor de los casos

    Al igual que con toda la incertidumbre en la computación, la opción más segura es siempre asumir lo peor -de los casos. Es decir, para minimizar la posibilidad de que una suposición incorrecta cause errores.

    En esta situación, se puede aplicar lo siguiente para cubrir sus bases:

    • Suponga la cantidad de recurso que tiene está en múltiplos de 1000 Bytes.

    • Suponga que los recursos utilizados por bibliotecas de terceros, etc. están en múltiplos de 1024 Bytes.

    • Proporcione las cifras de los recursos que utiliza como múltiplos de 1000 bytes.

    Estos tres supuestos aseguran que:

    • En el peor de los casos, pensará que tiene menos recursos de los que realmente tiene. Por ejemplo, asumir que 4 KB de RAM significa «4000 bytes» podría significar que planea tener 96 bytes menos de los que realmente tiene. Pero significa que nunca planeará tener 96 bytes más de los que realmente tiene.

    • En el peor de los casos, asumirá que la biblioteca que dijo que usa 2kB de RAM significaba que usa 48 Bytes más de memoria de la que realmente usa (suponga que significa 2048, no 2000). Pero nunca lo planeará usando 48 bytes menos de RAM de lo que realmente hace.

    • En el peor de los casos, los terceros asumirán que su programa usa más recursos de los que usa, asumiendo que se refería a 1024 bytes por kB y no a 1000. que alguien piense que usa menos de lo que realmente usa.

    Por supuesto, «no es ideal tener que hacerlo» perder «recursos innecesariamente. Pero en el caso general, es poco probable que la pequeña diferencia sea suficiente (especialmente como estudiante) para hacer inviable su proyecto. En los casos específicos en los que lo hace, ya deberían estar midiendo las huellas exactas de todo y sin asumir los tamaños de nada solo de la documentación.

    Sin embargo, el beneficio es que sus suposiciones sobre lo que alguien más quiso decir con «2kB» no le harán daño cuando «estén equivocadas». Lo cual en este caso específico, y como lección general para sus alumnos, creo que es importante.

    Respuesta

    “¿Qué conversión ¿Debo enseñar a mis estudiantes de pregrado? ”

    ¿Son estos estudiantes universitarios relacionados con la ingeniería? Si es así, hice 1024, basado en matemáticas binarias, ya que en eso se basa la ingeniería.

    Puede contar los bits con sus dedos:

    • $ 1 $ dedo = $ 2 $ estados, 0 y 1.
    • $ 2,4,8,16,32,64, 128, 256, 512, 1024 $.El valor decimal más alto que se puede obtener es 1 menos, mientras que el número de estados representados es $ 2 ^ x $ lista.
    • $ 2 ^ 1 -1 = 1 $. Por lo tanto, 0,1
    • $ 2 ^ 2 – 1 = 3 $. Por lo tanto, 0,1,2,3
    • $ 2 ^ 3 – 1 = 7 $. Por lo tanto, 0,1,2,3,4,5,6,7
    • etc. hasta $ 2 ^ 8 – 1 = 255 $. Por lo tanto, 256 estados, de 0 a 255.

    Los fabricantes pueden anunciar como 2.2TB, pero el sistema operativo lo informará como 2TB, o tal vez incluso como 2TB utilizables.

    Comentarios

    • Incorrecto, desafortunadamente. Los diferentes sistemas operativos informan de manera diferente. Específicamente los afrutados.
    • Incorrecto, afortunadamente. Los sistemas operativos decentes informan los tamaños correctamente, con GB = mil millones de bytes. Los afrutados comenzaron.
    • @ gnasher729: Dado que las unidades de asignación son múltiplos de 512 bytes en casi todos los sistemas operativos, informar sobre la utilización del disco en unidades de 1024 bytes tiene mucho más sentido para mí que informar en base diez unidades.

    Respuesta

    En mis 26 años como ingeniero de software profesional nunca he encontrado KB para significa cualquier cosa que no sea 1024.

    Enséñeles las definiciones que quiera y asegúrese de que sepan que 1024 es la única útil.

    Comentarios

    • Los comentarios no son para una discusión extensa; esta conversación ha sido movida al chat . La discusión es para chat, no para comentarios, y cualquier discusión adicional en los comentarios será eliminada.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *