要构成一个黑白相间的棋盘,每个格子都是8x8的,如何利用bit操作来实现呢
可以想象从0开始的第3个bit位,每递增8个数,都会在0和1之间切换,可以根据横向索引和纵向索引在第3个bit的值得异或来确定黑或者白
void makeCheckImage(void) { int i, j, c; for (i = 0; i < checkImageHeight; i++) { for (j = 0; j < checkImageWidth; j++) { c = ((((i&0x8)==0)^((j&0x8))==0))*255; checkImage[i][j][0] = (GLubyte) c; checkImage[i][j][1] = (GLubyte) c; checkImage[i][j][2] = (GLubyte) c; } } }