開発環境
- 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 コメント:
コメントを投稿