Estoy en el medio de crear un juego pequeño basado en consola para nuestra asignación de clase de programación C y decidí hacerlo más presentable y único agregando colores de texto y fondos de texto.¿Qué significa esta expresión? (Función SetConsoleTextAttribute en C)
Mientras yo estaba en mi búsqueda de la búsqueda de una solución, he encontrado esta práctica función que hará de la manera que quería para mi proyecto, pero el problema es que no es esta parte que no entiendo:
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
Donde, BackC
y ForgC
se dan enteros y el tipo de datos WORD
es solo un typedef para unsigned short int. Específicamente, lo que no entiendo es la parte ((BackC & 0x0F) << 4) + (ForgC & 0x0F)
. Puede alguien ayudarme con esto? Sé que puedo usar la función, pero realmente quiero saber cómo funciona la función ... ¡Gracias!
Aquí está el código fuente completo (colorExample.c)
#include <windows.h>
#include <stdio.h>
void SetColorAndBackground(int ForgC, int BackC);
int main()
{
SetColorAndBackground(10,1); //color value range 0 up-to 256
printf("what is text background color \n");
SetColorAndBackground(11,1);
printf("how about this?");
getch();
return 0;
}
void SetColorAndBackground(int ForgC, int BackC)
{
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), wColor);
return;
}
http://en.wikipedia.org/wiki/Bitwise_operation –