2012年10月14日日曜日

開発環境

『実践プログラミング 第3版』 (Steve Oualline (著)、 望月 康司 (監修) (翻訳)、 谷口 功 (翻訳)、 オライリー・ジャパン、1998年、ISBN978-4900900646) II部(単純なプログラミング)の11章(ビット演算)11.10(プログラミング実習)実習11-4を解いてみる。

実習11-4.

コード(TextWrangler)

#include <stdio.h>

int main(){
  int a;
  int count;
  int i;
  char line[100];
  while(1){
    printf("整数を入力: ");
    fgets(line, sizeof(line), stdin);
    sscanf(line, "%d", &a);
    count = 0;
    for(i = 1; i <= a; i = (i << 1)){
      if((a & i) != 0){
        count += 1;
      }
    }
    printf("セットされているビットの数: %d\n", count);
  }
}

入出力結果(Terminal)

$ cc -g -o sample sample.c
$ ./sample
整数を入力: 5
セットされているビットの数: 2
整数を入力: 0
セットされているビットの数: 0
整数を入力: 1
セットされているビットの数: 1
整数を入力: 2
セットされているビットの数: 1
整数を入力: 3
セットされているビットの数: 2
整数を入力: 4
セットされているビットの数: 1
整数を入力: 5
セットされているビットの数: 2
整数を入力: 6
セットされているビットの数: 2
整数を入力: 7
セットされているビットの数: 3
整数を入力: 8
セットされているビットの数: 1
整数を入力: 9
セットされているビットの数: 2
整数を入力: 10
セットされているビットの数: 2
整数を入力: 15
セットされているビットの数: 4
整数を入力: ^C
$

0 コメント:

コメントを投稿