Ejemplos de limitaciones en TI debido a la diferente longitud de bits por diseño [cerrado]

8

Estoy enseñando el curso "Introducción en la programación" para los estudiantes de primer año y me gustaría encontrar ejemplos interesantes donde el tamaño del tipo de datos en bits, elegido por diseño, condujo a ciertas restricciones conocidas o valores importantes.

Aquí hay unos ejemplos:

  1. Debido al hecho de que la teleimpresora Bell usó un código de 7 bits (luego aceptado como ASCII) hasta ahora, a menudo tenemos que codificar archivos adjuntos en mensajes electrónicos para contener solo datos de 7 bits.
  2. La limitación clásica del espacio de direcciones de 32 bits conduce al tamaño de RAM máximo de 4 Gb disponible para sistemas de 32 bits y al tamaño de archivo máximo de 4 Gb en FAT32.

¿Conoce otros ejemplos interesantes sobre cómo la elección del tipo de datos (y especialmente su longitud binaria) influyó en el mundo de TI moderno.

Agregado después de alguna discusión en los comentarios:

No voy a enseñar cómo superar las limitaciones. Solo quiero que sepan que 1 byte puede contener los valores de -127..0 .. + 127 o 0..255, 2 bytes cubren el rango 0..65535 etc. probando ejemplos que conocen de otras fuentes, como el codificación base64 mencionada anteriormente, etc. Estamos aprendiendo los tipos de datos básicos y estoy tratando de encontrar una buena referencia para "cuán grandes" son estos tipos.

Alexander Galkin
fuente
El objetivo de diseñar tecnología "infinitamente preparada para el futuro" no se puede lograr. En cambio, nos esforzamos por diseñar un "código revelador de intención" y "datos autodescriptivos" para que la información adicional (intención y descripción) facilite la migración de código y datos a sus formatos futuros.
rwong
Esto es absolutamente claro para mí y para los estudiantes. La idea básica aquí es acostumbrarse al mundo de los bits de 8 bits y obtener una visión general de "cuántos datos" pueden contener una, dos, cuatro, etc. estructuras de bytes.
Alexander Galkin
Mi sugerencia es buscar ejemplos que sean contemporáneos con la edad de los estudiantes. Es decir, que no pueden apreciar plenamente la situación en las viejas tecnologías, el precio de RAM, etc. (En un momento dado, un módulo de memoria de 64 KB es una envolvente separada fuera del ordenador, hecho de núcleos magnéticos tejidas a mano.)
rwong
Si desea enseñar cómo superar las limitaciones, enseñe adiciones binarias con carry, código de prefijo (necesario para comprender las instrucciones de la máquina), Unicode (un ejemplo de un esquema de codificación) e invite a los estudiantes a diseñar un esquema de codificación ad-hoc para divertido. Toque un poco de "información" y "entropía".
rwong
Tal vez formulé mi pregunta de una manera un poco vaga: no voy a enseñar cómo superar las limitaciones. Solo quiero que sepan que 1 byte puede contener los valores de -127..0 .. + 127 o 0..255, 2 bytes cubren el rango 0..65535 etc. probando ejemplos que conocen de otras fuentes, como el codificación base64 mencionada anteriormente, etc. Estamos aprendiendo los tipos de datos básicos y estoy tratando de encontrar una buena referencia para "cuán grandes" son estos tipos.
Alexander Galkin

Respuestas:

9

IPv4 es un muy buen ejemplo donde un tamaño de especificación limitado causó un problema muy costoso en el futuro. 4.300 millones de direcciones ya no son suficientes. Ahora los ISP de todo el mundo están desplegando desesperadamente IPv6 con un espacio de direcciones de 128 bits que se traduce en una dirección para cada átomo en su cuerpo o algo así.

Wyatt Barnett
fuente
1
Sí, considere esto: si hubiera 1 millón de direcciones asignadas cada picosegundo, tomaría 10783127828133.15 años consumirlas todas. Hay 2 ^ 128 direcciones disponibles con IPV6. En un segundo, hay 10 ^ 6/10 ^ -12 direcciones asignadas (1 x 10 ^ 18). Entonces (2 ^ 128) / ((10 ^ 6) / (10 ^ -12)) = 340282366920938463463.37 segundos. Asumiendo que hay 31,556,926 segundos en un año (según google.com), esto produce 10783127828133.15 años. Como esto es más antiguo que la tierra, deberíamos estar bien.
Jack
@Jack el problema Y11T? :)
derecha el
@Jack: hasta que no lo estemos, perderemos muchas direcciones debido a la segmentación de la red.
Wyatt Barnett el
1

El problema del año 2000 fue similar, excepto que las personas usaron números decimales en lugar de binarios, y codificaron solo dos últimos dígitos. Este puede ser un ejemplo útil si se lo explica a alguien que tiene poca experiencia con el binario.

FAT12 / FAT16 / FAT32 se adaptaron para cubrir para un almacenamiento cada vez más grande.

TeX tiene algunas propiedades interesantes al representar dimensiones (de The TeXBook):

TEX representa todas las dimensiones internamente como un múltiplo entero de las pequeñas unidades llamadas sp. Dado que la longitud de onda de la luz visible es de aproximadamente 100 sp, los errores de redondeo de algunas sp no hacen ninguna diferencia a simple vista. [...]

TEX no tratará con dimensiones cuyo valor absoluto sea 2 ^ 30 sp o más. En otras palabras, la dimensión legal máxima es ligeramente inferior a 16384 pt. Esta es una distancia de aproximadamente 18.892 pies (5.7583 metros), por lo que no obstaculizará su estilo.

(pt es una unidad tipográfica aproximadamente igual a 1/72 de pulgada)

liori
fuente
0

Microsoft Excel: intente graficar más de 32 mil elementos. Tiene que haber un campo de 16 bits firmado en alguna parte. (aunque redondean el límite a 32000 incluso por alguna razón).

AShelly
fuente