2013年11月17日日曜日

開発環境

C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、谷口 功 (翻訳)、オライリー・ジャパン)のⅡ部(単純なプログラミング)の11章(ビット演算)、11.8(ビットマップグラフィックス)、11.10(プログラミング実習)、実習11-4を解いてみる。

その他参考書籍

実習11-4.

コード

sample.c

#include <stdio.h>
#include <limits.h>
int main()
{
    int n;
    int m;
    char c;
    int count;
    char line[100];
    printf("%d\n", INT_MIN);
    while (1){
        printf("整数(int型)を入力: ");
        fgets(line, sizeof(line), stdin);
        if (line[0] == '\n'){
            break;
        }
        sscanf(line, "%d", &n);
        m = 1;
        count = 0;
        while (m > 0){
            if (m & n){
                count += 1;
            }
            m <<= 1;
        }
        if (m & n){
            count += 1;
        }
        printf("セットされているビットの数: %d\n", count);
    }
    return (0);
}

makefile

CC=cc
CFLAGS=-g

sample: sample.c
 $(CC) $(CFLAGS) -o sample sample.c

clean:
 rm -f sample

入出力結果(Terminal)

$ make
cc -g -o sample sample.c
$ ./sample
-2147483648
整数(int型)を入力: 0
セットされているビットの数: 0
整数(int型)を入力: 1
セットされているビットの数: 1
整数(int型)を入力: 2
セットされているビットの数: 1
整数(int型)を入力: 3
セットされているビットの数: 2
整数(int型)を入力: 4
セットされているビットの数: 1
整数(int型)を入力: 5
セットされているビットの数: 2
整数(int型)を入力: -1
セットされているビットの数: 32
整数(int型)を入力: -2
セットされているビットの数: 31
整数(int型)を入力: -3
セットされているビットの数: 31
整数(int型)を入力: -4
セットされているビットの数: 30
整数(int型)を入力: -5
セットされているビットの数: 31
整数(int型)を入力: -2147483648
セットされているビットの数: 1
整数(int型)を入力: 2147483647
セットされているビットの数: 31
整数(int型)を入力: 
$

0 コメント:

コメントを投稿