Publi

Un hito en el blog 256 = 2^8 Me gusta en Facebook y otras cosas del 256

Es un momento interesante y curioso en la historia del blog. Ya no puedo almacenar el número de likes de Facebook en un byte. Es una tontería, pero me ha hecho ilusión y dado el carácter el blog no podía dejarlo pasar.

¿Qué tiene de especial?

Tal vez sea por la forma de sus dígitos, por su sonido al pronunciarse (personalmente me gusta más el 256 que el 512) o que es el número de combinaciones que se pueden formar con la unidad mínima de memoria direccionable en la mayoría de las arquitecturas de computadoras actuales. Y aunque es pequeño para algunas cosas, es lo suficientemente grande para otras.

Pues los egipcios, utilizaban 256 / 81 como aproximación del número PI (+info)

¿Y por qué no 128 o 512?

Por ejemplo, para escribir un mensaje (en inglés), se necesitan 26 letras, está bien, si basamos nuestros sistemas en potencias de 2, tenemos que 24 = 16 y no es suficiente, pero 25 = 32 con lo que nos sobrarían caracteres, para poder representar espacios, el símbolo del dólar (porque al final la informática no hubiera evolucionado si no se pudieran hacer negocios), punto, coma… aunque no cabrían los números, como mínimo y a ojo tendremos unos 50 símbolos, pero 26 = 64 por lo que habría suficiente. Aunque a poco que lo utilicemos un poco, necesitaremos algunos caracteres de control (para validar mensajes, separarlos, confirmarlos, y algo más, símbolos matemáticos (+, -, /, %, *, =, (, ), [, ]…), el mismo alfabeto en minúsculas (porque todo mayúsculas es difícil de leer y todo minúsculas queda feo), así que subimos un bit más, 27 son 128 caracteres (ASCII!)… y con eso pudimos sobrevivir algunos años, aunque los españoles queremos escribir bien (con tildes, ¡y tener Ñ!), los franceses quieren su ç y los alemanes su ß, pues subimos un bit más (28 = 256, ASCII extendido). Aunque hubo muchas codificaciones de 256 caracteres (pensemos en chinos, rusos, árabes, etc que también tienen ordenador), aunque en la actualidad tenemos codificaciones multi-byte que no se limitan a 256 símbolos. Además, es más fácil trabajar con 28 que con 27 o 29, porque ya puestos, un byte podía haber terminado siendo más grande, de hecho algunos sistemas no lo tienen de 8bits, pero es más fácil trabajar con este número, que nos permite hacer hasta las cuentas de cabeza con un poco de práctica.

Dicho de otra forma…

256 = 28 = 44 = 83 = 162 = ((22)2)2
Y si cambiamos de base
25610 = 1000000002 = 4008 = 100 16

Como su representación binaria contiene un número impar de unos, se llama también número odioso, si tuviera un número par, sería un número malvado.

En los videojuegos…

256 es el nivel que sólo Chuck Norris se ha pasado del Pacman. Aunque se suponía que el juego debería ser infinito (de hecho si te lo pasas empiezas por el nivel 0), pero a ver quién lo consigue.
Otros juegos que sufrieron cosas parecidas son Dig Dug cuya fase 256 no se podía jugar o Galaga (secuela del Galaxian). Aunque hay cientos de juegos clásicos en los que no puedes tener más de 255 vidas(En Super Mario Bros, el máximo son 255 vidas)/objetos/dinero(En The Legend Of Zelda, puedes tener como mucho 255 rupias)/256km por hora de velocidad en juegos de coches…

Como en esos juegos, 256 era un valor permisible para las vidas por ejemplo (es difícil que logremos tener 256 vidas), pero dada la limitada memoria que tenían los sistemas de la época (para este tipo de datos se tenía un espacio muy limitado), se aprovechaba todo al máximo.

Cacharreando…

En muchos sistemas (antiguos o microcomputadores), los arrays tienen un límite de 256 elementos (del 0 al 255) porque al tener un bus pequeño no cabe mucha información y se destinan 8 bits solamente para el direccionamiento del valor que ponemos entre los corchetes [].

Siguiendo con microcomputación, algunos chips tienen un reloj que se reinicia cada 256 segundos, en este caso, si queremos más, debemos controlarlo a mano, ya que podremos detectar cuándo el reloj cambia de 255 a 0, aunque el control del tiempo ya no será atómico (necesitaremos gastar varios ciclos para controlarlo).

Los juegos de Sega Master System, ocupaban como máximo 256Kb, imaginad cómo pudieron meter el Sonic en tan poca memoria.

Si nos vamos a sistemas un poco más grandes, podemos ver que muchos de los móviles de finales de los 90 y primeros de los 00 tenían una agenda de alrededor de 256 contactos o 256 contactos. Si había memoria dedicada a los contactos, podíamos tener 256 contactos, pero si no, la memoria podía estar organizada en 256 bloques (o slots), de los cuales casi todos serían para los contactos (pero pronto las necesidades de los usuarios fueron algo más que la agenda y empezaron a meter memoria en bytes en lugar de gestionarla por slots.

Las primeras Raspberry Pi (modelo A y los primeros modelos B) tenían 256Mb de RAM.

Ahora en el terrenos de los discos duros SSD, éstos por lo general escriben en bloques de 4Kb, pero cuando se trata de borrar, deben borrar 64 bloques a la vez, en total 256Kb, bueno hay muchos modelos de SSD, pero éste es el límite típico (aunque no el de mi disco duro).

Otros usos…

Es el tamaño típico en bits de las claves criptográficas AES. O los hashes SHA-256 (el número lo dice ya).

También es el número típico de colores que se utilizan típicamente en cada canal de color en una imagen. Los valores que puede tomar cada color o el canal alfa (transparencia) está comprendido entre 0 y 255 (en total 256). Cuando representamos un color en HTML (o CSS), normalmente, lo hacemos con la notación hexadecimal, #RRGGBB (dos letras representan el rojo, otras dos el verde y otras dos el azul). Cada uno de los canales tiene valores comprendidos entre 00 y FF.

El tamaño máximo que puede tener una partición ZFS (256 zebibytes = 270).

Es el número de colores máximo que utilizan muchos formatos gráficos basados en paleta de colores, por ejemplo el formato gif, por lo que las imágenes son matrices de un sólo número de 8bits y en otro lugar almacenarán la equivalencia entre ese índice y los componentes rojo, verde y azul del color. Bueno, antiguamente los modos gráficos funcionaban así, nada de ver simultáneamente 16 millones de colores (2563), la tarjeta gráfica mantenía una paleta y cada pixel hacía referencia al índice de esa paleta. Aunque se notaba mucho cuando se representaban fotografías (las cuales se optimizaban mucho para entrar en 256 colores), había verdaderas obras de arte para tener tan pocos colores.

Es el número de combinaciones que puede tener un número de una dirección IPv4 (entre 0 y 255).

Y por supuesto, el día del programador se celebra el día 256 del año (13 de septiembre, 12 de septiembre en años bisiestos).

Limitaciones…

Es la limitación de muchos programas, sobre todo antiguos, porque antiguamente, aunque no lo parezca no desaprovechábamos un int para un contador hasta 100; aunque también sistemas nuevos que necesitan economizar para aprovechar espacio (si tenemos que aprovechas 100 millones de datos y desaprovechamos 3 bytes en cada dato, ya son 300Mb. Por eso muchos límites son de 256 elementos o 255 + código de control:

  • MS Excel, en su antiguo formato XLS sólo soportaba 256 columnas y 256 hojas. Entre otros límites (más info)
  • Altura máxima que se puede alcanzar en Minecraft.(Fuente). (Segúramente con algún mod se pueda cambiar)
  • Longitud máxima de los nombres de archivo en muchos de los sistemas de archivos actuales
  • Antes de MySQL 5.0.3, la longitud de un tipo de dato VARCHAR estaba comprendida entre 0 y 255 (255+terminador=256). Los tipos CHAR siguen limitados a 255. Eso sí, si utilizamos en VARCHAR un valor+ info). Y como no es algo específico de MySQL, sino que otros motores de base de datos también hacen algo parecido, esto supone una limitación para todos los programas que trabajan sobre este tipo de bases de datos (aunque a veces tenemos más que suficiente, es sólo por quejarnos).
  • Límite de 256Kb en tarjetas y grupos de contacto en iCloud (+info)
  • Tamaño de los enlaces que podemos abrir en Outlook 2003 (+info)
  • Los registros SPF no pueden tener cadenas mayores de 255 caracteres. Si necesitas más, crea varias cadenas.
  • El tamaño máximo de los nombres de dominio (sub.sub.sub.dominio.ext) es de 255 bytes. (+info)
  • En Blender, un personaje no puede tener más de 255 huesos (bones), no sé si habrá cambiado esto)

También podría interesarte...

Leave a Reply