2013年11月18日月曜日

開発環境

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

その他参考書籍

実習11-5.

コード

sample.c

#include <stdio.h>
int main()
{
    long int n;
    int size = 8;
    unsigned char c = 0xf;
    char line[100];
    unsigned char bits[size];
    while (1){
        printf("32ビット整数型(long int)を入力: ");
        fgets(line, sizeof(line), stdin);
        if (line[0] == '\n'){
            break;
        }
        sscanf(line, "%ld", &n);
        int i;
        for (i = 0; i < size; i += 1){
            bits[i] = n & c;
            n >>= 4;
        }
        printf("8つの4ビット値に分割: ");
        for (i = size - 1; i >= 0; i -= 1){
            printf("%x ", bits[i]);
        }
        printf("\n");
    }
    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
32ビット整数型(long int)を入力: 0
8つの4ビット値に分割: 0 0 0 0 0 0 0 0 
32ビット整数型(long int)を入力: 1
8つの4ビット値に分割: 0 0 0 0 0 0 0 1 
32ビット整数型(long int)を入力: 15
8つの4ビット値に分割: 0 0 0 0 0 0 0 f 
32ビット整数型(long int)を入力: 16
8つの4ビット値に分割: 0 0 0 0 0 0 1 0 
32ビット整数型(long int)を入力: -1
8つの4ビット値に分割: f f f f f f f f 
32ビット整数型(long int)を入力: -2
8つの4ビット値に分割: f f f f f f f e 
32ビット整数型(long int)を入力: -3
8つの4ビット値に分割: f f f f f f f d 
32ビット整数型(long int)を入力: -4
8つの4ビット値に分割: f f f f f f f c 
32ビット整数型(long int)を入力: -5
8つの4ビット値に分割: f f f f f f f b 
32ビット整数型(long int)を入力: -16
8つの4ビット値に分割: f f f f f f f 0 
32ビット整数型(long int)を入力: -17
8つの4ビット値に分割: f f f f f f e f 
32ビット整数型(long int)を入力: 
$

0 コメント:

コメントを投稿