2012年10月9日火曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の11章(ビット演算)11.7(ビットのセットとクリアおよびテスト)設問11-1を解いてみる。

設問11-1.

char型は、ビット番号0123457だけど、DIRECT_CONNECTは、(1<<8)と存在しないビット番号にセット使用としているから。char型ではなく、short int型にすればいい。

修正

コード(TextWrangler)

#include <stdio.h>

const short int HIGH_SPEED = (1<<7);
const int DIRECT_CONNECT = (1<<8);

short int flags = 0;

int main(){
  flags |= HIGH_SPEED;
  flags |= DIRECT_CONNECT;
  
  if((flags & HIGH_SPEED) != 0){
    printf("High speed set\n");
  }
  if((flags & DIRECT_CONNECT) != 0){
    printf("Direct connect set\n");
  }
  return (0);
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
High speed set
Direct connect set
$

0 コメント:

コメントを投稿