¿Cómo puede el código binario, que es sólo 1 y 0, hacer que un ordenador muestre colores?

El manejo de los colores es un poco extraño en la programación informática, porque prácticamente todos los lenguajes/sistemas procesan los colores de la misma manera. Y probablemente siempre lo harán así, porque está ligado a cómo funciona la vista humana (y eso no va a cambiar).

Tus ojos sólo pueden ver realmente 3 colores, rojo, verde y azul. Todos los demás colores son mezclas. Así que los monitores tienen píxeles rojos, verdes y azules independientes.

Es un poco exagerado, pero si permitimos 8 bits (256 valores posibles) para cada uno de los rojos, verdes y azules podemos generar todos los colores que podemos percibir. Si añadimos otros 8 bits para la transparencia, tenemos 32 bits: 8 bits para el rojo, el verde, el azul y la transparencia. Lo que supone 8 x 4 = 32 bits de información por píxel, que resulta ser la longitud de un número entero en la mayoría de los idiomas.

Así que los ordenadores generan un número entero de 32 bits para cada píxel de la pantalla. El hardware del monitor separa esta información en rojo, verde, azul y transparencia y la utiliza para determinar el brillo relativo de los píxeles rojos, verdes y azules y, por tanto, el color final.

Muchos lenguajes (Java, C#) ni siquiera tienen clases concretas para el color, sólo utilizan ints. Los sistemas operativos de Apple sí tienen clases de color concretas, pero son fácilmente traducidas a y desde RGB y no son realmente tan diferentes bajo el capó.