我正在爲我們的C編程類作業創建基於控制檯的小型遊戲,並且決定通過添加文本顏色和文本背景使其更加可視化和獨特。這個表達意味着什麼? (C中的SetConsoleTextAttribute函數)
雖然我對我的追求尋找解決的辦法,我發現這個方便的功能,將做到這我想爲我的項目,但問題是,有這部分我不明白的方式:
WORD wColor = ((BackC & 0x0F) << 4) + (ForgC & 0x0F);
其中,BackC
和ForgC
是整數,數據類型WORD
只是unsigned short int的typedef。具體來說,我不明白的是((BackC & 0x0F) << 4) + (ForgC & 0x0F)
部分。誰能幫我這個?我知道我可以使用該功能,但我真的很想知道該功能是如何工作的......謝謝!
以下是完整的源代碼(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 – 2011-09-24 14:30:48