Saltar al contenido
Portada » Blog – Laprovittera Carlos » TryHackMe – Data Representation

TryHackMe – Data Representation

Hola hacketones! En este capítulo de TryHackMe – Data Representation Aprenda cómo las computadoras representan números y colores.

Bits, Colores y Código

Las computadoras funcionan a partir de un principio extremadamente simple: todo se reduce a dos estados posibles. Estos estados se representan como 0 y 1, conocidos como bits, la unidad mínima de información en la informática. Un bit refleja una condición física dentro del hardware, como un voltaje bajo o alto, o la ausencia o presencia de señal. Aunque parezca limitado, esta combinación de ceros y unos es capaz de construir toda la lógica que hace posible el funcionamiento de los sistemas digitales.

Para que los humanos puedan trabajar con estos valores de manera más práctica, existen distintos sistemas de numeración. El sistema binario, basado en los dígitos 0 y 1, es el lenguaje natural de las computadoras y se utiliza para el procesamiento interno. Sin embargo, leer largas cadenas de bits resulta complicado, por lo que se emplea el sistema hexadecimal, que agrupa bloques de cuatro bits y los representa con números del 0 al 9 y letras de la A a la F. Esto permite expresar grandes cantidades de información de forma mucho más compacta y comprensible. Mientras tanto, el sistema decimal, basado en diez dígitos, sigue siendo el que usamos diariamente para contar y calcular.

El Lenguaje Oculto de las Computadoras

Esta relación entre bits y representaciones más legibles también aparece en la forma en que las computadoras manejan el color. En los sistemas digitales, los colores se generan mediante el modelo RGB, que mezcla diferentes intensidades de luz roja, verde y azul. Cada uno de estos tres colores primarios se representa mediante un conjunto de bits que indica su intensidad. Cuando se utilizan 8 bits para cada canal de color, se obtienen 256 niveles posibles por cada componente, lo que al combinarse produce más de 16.7 millones de colores distintos.

Para simplificar la representación de estos valores se utilizan códigos hexadecimales, como por ejemplo #A3EA2A. Este formato compacto resume los 24 bits que describen la intensidad de rojo, verde y azul. Así, una cadena relativamente corta de caracteres puede representar una combinación específica de color que luego se traduce en señales binarias dentro del sistema.

Detrás de cada interfaz, cada imagen y cada píxel que aparece en pantalla, existe esta transformación constante entre electricidad, bits y códigos. Lo que se percibe como gráficos complejos y millones de colores en realidad nace de combinaciones extremadamente simples de 0 y 1 que el hardware interpreta y procesa a velocidades impresionantes.

Sistemas de Representación Numérica y de Colores

Valor DecimalDígito HexadecimalDígito OctalRepresentación BinariaEstado de BitsNombre del Color (si aplica)Significado de la Representación
0000000Todos apagadosBlackTodos los colores están apagados
1110001Solo azul encendidoBlueSolo el azul está encendido
2220010Solo verde encendidoGreenSolo el verde está encendido
3330011Verde y azul encendidosCyanVerde y azul están encendidos
4440100Solo rojo encendidoRedSolo el rojo está encendido
5550101Rojo y azul encendidosMagentaRojo y azul están encendidos
6660110Rojo y verde encendidosYellowRojo y verde están encendidos
7770111Todos encendidosWhiteTodos los colores están encendidos
88No aplica1000Bit de mayor peso encendidoNo indicadoRepresentación numérica de base 16
99No aplica1001Bits de extremos encendidosNo indicadoRepresentación numérica de base 16
10ANo aplica1010Bits alternos encendidosNo indicadoRepresentación numérica de base 16
11BNo aplica1011Tres bits encendidosNo indicadoRepresentación numérica de base 16
12CNo aplica1100Dos bits superiores encendidosNo indicadoRepresentación numérica de base 16
13DNo aplica1101Tres bits encendidosNo indicadoRepresentación numérica de base 16
14ENo aplica1110Tres bits superiores encendidosNo indicadoRepresentación numérica de base 16
15FNo aplica1111Todos los bits encendidosNo indicadoRepresentación numérica de base 16

Introducción

¿Te interesa explorar a fondo cómo las computadoras representan los colores y los números? No solo te interesa ver el color púrpura en la pantalla, sino también inspeccionar cómo se representa este color en la memoria de la computadora. Además, aprenderás cómo las computadoras realizan todos sus cálculos cuando solo pueden leer y escribir dos estados e interpretarlos como 0 y 1.

A los seres humanos les resulta más cómodo usar el sistema decimal para tareas cotidianas, como contar, medir, pesar y pagar. Si te gusta correr, podrías controlar tu progreso cronometrándote; por ejemplo, podrías decir que corriste durante 23 minutos. Al mirar precios, esperas algo como 17, 99, 239, 3049, etc. Sin pensarlo mucho, usamos el sistema decimal, donde los dígitos van del 0 al 9. Las computadoras, en cambio, se limitan a dos dígitos: 0 y 1. Si alguna vez te has preguntado cómo las computadoras representan los diferentes valores usando solo dos dígitos, esta sala te ayudará a encontrar algunas respuestas.

Objetivos de aprendizaje

  • Representando 8 colores
  • Representando 16 millones de colores
  • Números binarios
  • Números hexadecimales
  • (Opcional) Números octales

Al finalizar esta sala, comprenderá a fondo cómo las computadoras representan los colores y comprenden los números (en especial los enteros positivos). Estar familiarizado con las representaciones en sistemas binario y hexadecimal es fundamental para el uso de diversas herramientas informáticas, especialmente en el ámbito de la ciberseguridad.

Representando colores

Nuestros primeros ocho colores

Combinando diferentes cantidades de luces rojas, verdes y azules, puedes obtener el color que desees. En el sistema de colores de computadora, imagínate tres perillas, cada una de las cuales controla uno de los tres colores.

Ejemplo

Digamos que cada uno de los tres colores puede estar encendido o apagado, es decir, cada uno tiene dos estados.

  • La luz roja puede estar encendida o apagada.
  • La luz verde puede estar encendida o apagada.
  • La luz azul puede estar encendida o apagada.

Estos estados nos dan 2 × 2 × 2 = 8 , es decir ocho colores diferentes.

Si una computadora estuviera limitada a 8 colores, solo necesitaría indicar qué color está «encendido» y cuál está «apagado». De hecho, puede usar tres dígitos, 1 y 0, para representar los estados de rojo, verde y azul. Por ejemplo, 111 representaría las tres luces encendidas, mientras que 100 representaría solo la roja encendida. Este dígito, que puede ser 1 o 0, se denomina bit . Ahora, una computadora puede representar cualquiera de los ocho colores. Si aún no lo tienes claro, la tabla a continuación muestra una lista detallada.

Representación del colorRepresentación SignificadoNombre del color
000Todos los colores están apagadosNegro
001Solo está el azulAzul
010Solo está el color verdeVerde
100Sólo está el rojoRojo
011El verde y el azul están encendidosCian
101El rojo y el azul están encendidosMagenta
110El rojo y el verde están encendidosAmarillo
111Todos los colores están encendidosBlanco

Acabamos de proporcionar una forma de representar un color en una paleta de 8 colores.

De 8 a 16.000.000

Limitarse a ocho colores es un inconveniente, ya que preferimos millones de colores. Sería conveniente que cada una de las tres luces (roja, verde y azul) tuviera 256 niveles en lugar de solo 2 (encendido o apagado). Repitamos el mismo cálculo anterior: 256 × 256 × 256 = 16.777.216 . Eso supone más de 16 millones de colores; con lo que cubrimos la mayoría de nuestras necesidades.

Un bit es suficiente para representar dos estados: encendido y apagado. Necesitamos 8 bits para expresar 256 estados. En la mayoría de los libros de texto, un grupo de 8 bits se denomina byte ; sin embargo, también se puede usar el término octeto .

Al combinar todo esto, te darás cuenta de que un color ahora se representa como 3 × 8 bits, o 3 bytes (24 bits). Por ejemplo, el color verde usado en esta página se representa como 10100011 11101010 00101010; esa no es una forma muy práctica de escribir o leer códigos de color. ¡Aquí viene la representación hexadecimal al rescate!

Representación hexadecimal

La representación hexadecimal facilita la combinación de 4 bits en un solo carácter, un dígito hexadecimal, para ser más precisos. Por ahora, considere los dígitos hexadecimales como símbolos, donde cada símbolo representa un conjunto de 4 bits. Repasaremos los números hexadecimales en la Tarea 3.

Dígito hexadecimalRepresentación binaria
00000
10001
20010
30011
40100
50101
60110
70111
81000
91001
A1010
B1011
C1100
D1101
E1110
F1111

Volviendo al color verde, en lugar de escribir 10100011 11101010 00101010, podemos escribir A3EA2A. De hecho, así es como se especifica el color en los programas de gráficos. Para su comodidad, el sitio estático adjunto le ayuda a convertir un color hexadecimal a sus representaciones binarias y decimales, junto con una vista previa del color.

Para resumir lo que hemos cubierto hasta ahora:

  • En aplicaciones de la vida real, un color se representa en 24 bits, es decir, 3 bytes.
  • Cada byte puede representar 256 valores diferentes
  • Cada uno de los tres bytes especifica la intensidad de las luces roja, verde y azul.
  • Cada 4 bits están representados por un dígito hexadecimal
  • Cada byte se representa como dos dígitos hexadecimales

Haga clic en el botón Ver sitio a continuación y utilícelo para responder las siguientes preguntas.

Responda las preguntas a continuación

Vista previa del color #3BC81E. En una palabra, ¿qué color parece?

green

¿Cuál es la representación binaria del color #EB0037?

11101011 00000000 00110111

¿Cuál es la representación decimal del color #D4D8DF?

212 216 223

Números: de decimal a hexadecimal

Los seres humanos tenemos diez dedos, y esta es la explicación más plausible de por qué usamos el sistema decimal (de base 10) en nuestra vida diaria. Las computadoras, en cambio, tienen dos dedos, estados que comprenden:

  • Rango de voltaje bajo y alto (ejemplo: lógica transistor-transistor)
  • Norte y Sur en polaridad magnética (ejemplo: unidades de disco duro)
  • Presencia de luz (ejemplo: fibra óptica)

Consideremos el primer ejemplo. A nivel electrónico, un transistor permite o bloquea la corriente eléctrica. Por consiguiente, en todos los sistemas digitales, todo se reduce a un estado bajo o alto, que representan 0 y 1, respectivamente. ( Por ejemplo, el rango bajo puede ser un voltaje entre 0 y 0,8 voltios, mientras que el rango alto está entre 2 y 3,3 voltios, o entre 2,7 y 5 voltios, según el sistema electrónico ). No nos afecta cómo se representan el 0 y el 1 a nivel físico; sin embargo, nos interesa cómo usar estos dos dígitos para representar datos, como números.

En la tarea anterior, vimos que podemos usar un conjunto de bits para afinar los pasos. Por ejemplo, 1 bit puede representar 2 estados, mientras que 8 bits pueden representar 256 estados. En esta tarea, aprenderemos un poco más sobre las matemáticas que lo sustentan; sin embargo, no se preocupe si a primera vista parece complejo. Las cosas cobrarán más sentido a medida que avance en su aprendizaje.

En términos matemáticos simples, un número como 213 es en realidad lo mismo que decir 200 + 10 + 3. ¿No es así? En una representación más técnica, 213 se puede escribir como 213 = 2 × 10 2 + 1 × 10 1 + 3 × 10 0 . Como recordarás de la clase de matemáticas, 10 2 = 100 , 10 1 = 10 y 10 0 = 1 .

En consecuencia, esta era simplemente la forma matemática formal de decir 213 = 2 × 100 + 1 × 10 + 3 × 1. Si no has trabajado con matemáticas durante algún tiempo, por favor, reflexiona sobre esto y léelo de nuevo antes de continuar.

Números binarios

El sistema binario (base 2) se puede expresar de forma similar a lo que escribimos anteriormente, al hablar del sistema decimal (base 10). Las diferencias clave son que el sistema binario se limita a dos dígitos, 0 y 1, y que todo es una potencia de 2. Consideremos un par de ejemplos.

El número binario 1001se puede expresar de la siguiente manera: 1001 = 1 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 1 × 8 + 0 × 4 + 0 × 2 + 1 × 1 = 8 + 0 + 0 + 1 = 9. Acabamos de demostrar cómo escribir 9 en binario. Siguiendo el mismo enfoque, no será difícil convertir los números binarios 0000, 0001, 0010, 0011al sistema decimal. Repasemos estas cuatro conversiones.

0000 = 0 × 2 3 + 0 × 2 2 + 0 × 2 1 + 0 × 2 0 = 0 × 8 + 0 × 4 + 0 × 2 + 0 × 1 = 0

0001 = 0 × 2 3 + 0 × 2 2 + 0 × 2 1 + 1 × 2 0 = 0 × 8 + 0 × 4 + 0 × 2 + 1 × 1 = 1

0010 = 0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 0 × 2 0 = 0 × 8 + 0 × 4 + 1 × 2 + 0 × 1 = 2

0011 = 0 × 2 3 + 0 × 2 2 + 1 × 2 1 + 1 × 2 0 = 0 × 8 + 0 × 4 + 1 × 2 + 1 × 1 = 3

Si es la primera vez que trabajas con diferentes bases, quizás ya te hayas dado cuenta de que el dígito más a la derecha se multiplica por 2 0 en el caso del sistema binario (base 2) y por 10 0 en el caso del sistema decimal (base 10). Luego, el siguiente dígito se multiplica por 2 1 en el sistema base 2 y por 10 1 en el sistema base 10. Y así sucesivamente hasta llegar al dígito más a la izquierda. Es fácil, pero requiere mucha atención para no omitir ningún dígito ni calcular mal su potencia.

Como ejercicio, convertiremos cuatro números binarios más, 1100, 1101, 1110 y 1111, al sistema decimal. Intenta hacerlo en una hoja de papel antes de comparar tus respuestas con las soluciones a continuación.

1100 = 1 × 2 3 + 1 × 2 2 + 0 × 2 1 + 0 × 2 0 = 1 × 8 + 1 × 4 + 0 × 2 + 0 × 1 = 8 + 4 + 0 + 0 = 12

1101 = 1 × 2 3 + 1 × 2 2 + 0 × 2 1 + 1 × 2 0 = 1 × 8 + 1 × 4 + 0 × 2 + 1 × 1 = 8 + 4 + 0 + 1 = 13

1110 = 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 0 × 2 0 = 1 × 8 + 1 × 4 + 1 × 2 + 0 × 1 = 8 + 4 + 2 + 0 = 14

1111 = 1 × 2 3 + 1 × 2 2 + 1 × 2 1 + 1 × 2 0 = 1 × 8 + 1 × 4 + 1 × 2 + 1 × 1 = 8 + 4 + 2 + 1 = 15

Habiendo llegado hasta aquí, es hora de revisar el sistema hexadecimal.

Números hexadecimales

En la Tarea 2, agrupamos cada 4 bits en un solo dígito hexadecimal. Como vimos antes, un dígito hexadecimal oscila entre 0y F. Al observar con más detalle la tabla a continuación, observará que un dígito hexadecimal oscila entre 0 y 15 en el sistema decimal. Para reemplazar 10, 11, 12, 13, 14 y 15 con una sola letra o dígito, se eligen A, B, C, D, E y F. La tabla a continuación es algo que encontraría en cualquier tutorial o capítulo sobre el sistema hexadecimal.

Número decimalDígito hexadecimalRepresentación binaria
000000
110001
220010
330011
440100
550101
660110
770111
881000
991001
10A1010
11B1011
12C1100
13D1101
14E1110
15F1111

Opcional: Conversión del sistema hexadecimal al decimal

Esta subsección es opcional. Si tiene curiosidad sobre cómo convertir un número hexadecimal a decimal, siga el mismo método que usamos para la conversión binaria. Supongamos que queremos convertir el número hexadecimal 9B DFa decimal.

B D F = 9 × 16 3 + 11 × 16 2 + 13 × 16 1 + 15 × 16 0 = 9 × 4096 + 11 × 256 + 13 × 16 + 15 × 1 = 39,903

Opcional: Números octales

El sistema octal se basa en la base 8. Es decir, utiliza los dígitos entre 0 y 7. Mientras que el sistema hexadecimal utiliza la base 16 y agrupa 4 bits, el sistema octal utiliza la base 8 y agrupa 3 bits. La siguiente tabla muestra la relación entre los dígitos octales y sus contrapartes binarias.

Número decimalDígito octalRepresentación binaria
00000
11001
22010
33011
44100
55101
66110
77111

Opcional: Conversión del sistema octal al decimal

La conversión de un número octal a su equivalente decimal sigue los pasos de las conversiones anteriores. Considere el número octal 357.

357 = 3 × 8 2 + 5 × 8 1 + 7 × 8 0 = 3 × 64 + 5 × 8 + 7 × 1 = 239

Haga clic en el botón Ver sitio a continuación y utilícelo para responder las siguientes preguntas.

Responda las preguntas a continuación

¿Qué es el hexadecimal FF en binario?

1111 1111

¿Cuál es el hexadecimal AB en decimal?

171

Convierte el valor hexadecimal FF FF FF a decimal. Después de redondear el valor decimal al millón más cercano, ¿cuántos millones son?

17

Conclusión

En esta sala, abordamos varios temas relacionados con la representación y el almacenamiento de valores numéricos en la memoria de la computadora. Abordamos los siguientes sistemas:

  • Sistema decimal (base 10) : este es el sistema que utilizamos en nuestra vida diaria.
  • Sistema binario (base 2) : las computadoras entienden dos estados, que se codifican como 0y 1.
  • Sistema hexadecimal (base 16) : Cada 4 dígitos binarios (bits) se pueden agrupar en un dígito hexadecimal. Un dígito hexadecimal varía entre 0y F.
  • Sistema octal (base 8) : Cada 3 dígitos binarios (bits) se pueden agrupar en un dígito octal. Un dígito octal oscila entre 0y 7. Este sistema es menos común en los sistemas informáticos.

Además, aprendimos cómo se puede representar un color. Cubrimos:

  • Bit : es la abreviatura de dígito binario y puede ser 0o 1.
  • Byte : En los sistemas modernos, un byte consta de 8 bits. También se denomina octeto .
  • Color hexadecimal : Un color se representa como una combinación de rojo, verde y azul en los sistemas informáticos. Si se asigna un byte a cada uno de los colores primarios (rojo, verde y azul), se pueden obtener más de 16 millones de combinaciones de colores.

En la sala de Codificación de Datos , exploraremos cómo se guardan los alfabetos de los distintos idiomas. Además de las letras, veremos cómo se guardan los emojis como bits.

Y finalizamos

Cuando terminan los objetivos de la semana se ganan protector de racha, básicamente como en Duolingo.

Sigan entrenando, Hacketones, Nos vemos en el próximo laboratorio!!!

Deja una respuesta

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