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