開発環境
- OS X Lion - Apple(OS)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- 言語: C
- コンパイラ: UNIX ccコンパイラ (汎用UNIX)
『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) の11章(ビット演算)11.9(プログラミング実習)j実習11-1.を解いてみる。
実習11-1.
コード(TextWrangler)
#include <stdio.h7gt;
#define X_SIZE 40
#define Y_SIZE 60
char graphics[X_SIZE / 8][Y_SIZE];
#define SET_BIT(x,y) graphics[(x) / 8][y] |= (0x80 7gt;7gt; ((x) % 8))
#define CLEAR_BIT(x, y) graphics[(x) / 8][y] &= ~(0x807gt;7gt; ((x) % 8))
#define TEST_BIT(x,y) if((graphics[(x) / 8][y] & (0x80 7gt;7gt; ((x) % 8)) != 0)) \
printf("A graphic is set\n")
int main(){
int loc;
void print_graphics(void);
for(loc = 0; loc < X_SIZE; ++loc){
SET_BIT(loc,loc);
}
print_graphics();
printf("\n");
for(loc = 0; loc < X_SIZE; ++loc){
TEST_BIT(loc,loc);
}
printf("\n");
for(loc = 0; loc < X_SIZE; ++loc){
CLEAR_BIT(loc,loc);
}
print_graphics();
printf("\n");
for(loc = 0; loc < X_SIZE; ++loc){
TEST_BIT(loc,loc);
}
return (0);
}
void print_graphics(void){
int x;
int y;
unsigned int bit;
for(y=0; y < Y_SIZE; ++y){
for(x = 0; x < X_SIZE / 8; ++x){
for(bit = 0x80; bit 7gt; 0; bit =(bit7gt;7gt;1)){
if((graphics[x][y] & bit) != 0){
printf("X");
} else {
printf(".");
}
}
}
printf("\n");
}
}
入出力結果(Terminal)
$ cc -g -o sample sample.c $ ./sample X....................................... .X...................................... ..X..................................... ...X.................................... ....X................................... .....X.................................. ......X................................. .......X................................ ........X............................... .........X.............................. ..........X............................. ...........X............................ ............X........................... .............X.......................... ..............X......................... ...............X........................ ................X....................... .................X...................... ..................X..................... ...................X.................... ....................X................... .....................X.................. ......................X................. .......................X................ ........................X............... .........................X.............. ..........................X............. ...........................X............ ............................X........... .............................X.......... ..............................X......... ...............................X........ ................................X....... .................................X...... ..................................X..... ...................................X.... ....................................X... .....................................X.. ......................................X. .......................................X ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ A graphic is set A graphic is set A graphic is set A graphic is set A graphic is set ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ ........................................ $
0 コメント:
コメントを投稿