2014年3月7日金曜日

開発環境

C++実践プログラミング (スティーブ オウアルライン (著)、Steve Oualline (原著)、Steve Oualline(原著)、望月 康司(翻訳)、クイープ(翻訳) 、オライリー・ジャパン)のⅡ部(シンプルなプログラミング)の11章(ビット演算)、11.8(ビットマップグラフィックス)、実習 11-5.を解いてみる。

その他参考書籍

実習 11-5.

コード(BBEdit, Emacs)

sample195_4.cpp

#include <iostream>

int main() {
  long int n;
  void split_long_int(long int n);
  
  for (n = -32; n < 32; ++n) {
    std::cout << n << ": ";
    split_long_int(n);
  }
  
  long int a = 2147483647;
  long int b = -2147483648;

  std::cout << a << ": ";
  split_long_int(a);
  std::cout << b << ": ";
  split_long_int(b);

  return (0);
}

void split_long_int(long int n)
{
  long int m = 0xf;
  int i;

  for (i = 7; i >= 0; --i) {
    std::cout << (((n & (m << (i * 4))) >> (i * 4)) & m) << ' ';
  }
  std::cout << '\n';
}

Makefile

#
# FSFのg++コンパイラ用のMakefile
#
CC=g++
CFLAGS=-g -Wall
all: sample195_5

sample195_5: sample195_5.cpp
 ${CC} ${CFLAGS} -o sample195_5 sample195_5.cpp

clean:
 rm sample195_5

入出力結果(Terminal)

$ make && ./sample195_5
g++ -g -Wall -o sample195_5 sample195_5.cpp
-32: 15 15 15 15 15 15 14 0 
-31: 15 15 15 15 15 15 14 1 
-30: 15 15 15 15 15 15 14 2 
-29: 15 15 15 15 15 15 14 3 
-28: 15 15 15 15 15 15 14 4 
-27: 15 15 15 15 15 15 14 5 
-26: 15 15 15 15 15 15 14 6 
-25: 15 15 15 15 15 15 14 7 
-24: 15 15 15 15 15 15 14 8 
-23: 15 15 15 15 15 15 14 9 
-22: 15 15 15 15 15 15 14 10 
-21: 15 15 15 15 15 15 14 11 
-20: 15 15 15 15 15 15 14 12 
-19: 15 15 15 15 15 15 14 13 
-18: 15 15 15 15 15 15 14 14 
-17: 15 15 15 15 15 15 14 15 
-16: 15 15 15 15 15 15 15 0 
-15: 15 15 15 15 15 15 15 1 
-14: 15 15 15 15 15 15 15 2 
-13: 15 15 15 15 15 15 15 3 
-12: 15 15 15 15 15 15 15 4 
-11: 15 15 15 15 15 15 15 5 
-10: 15 15 15 15 15 15 15 6 
-9: 15 15 15 15 15 15 15 7 
-8: 15 15 15 15 15 15 15 8 
-7: 15 15 15 15 15 15 15 9 
-6: 15 15 15 15 15 15 15 10 
-5: 15 15 15 15 15 15 15 11 
-4: 15 15 15 15 15 15 15 12 
-3: 15 15 15 15 15 15 15 13 
-2: 15 15 15 15 15 15 15 14 
-1: 15 15 15 15 15 15 15 15 
0: 0 0 0 0 0 0 0 0 
1: 0 0 0 0 0 0 0 1 
2: 0 0 0 0 0 0 0 2 
3: 0 0 0 0 0 0 0 3 
4: 0 0 0 0 0 0 0 4 
5: 0 0 0 0 0 0 0 5 
6: 0 0 0 0 0 0 0 6 
7: 0 0 0 0 0 0 0 7 
8: 0 0 0 0 0 0 0 8 
9: 0 0 0 0 0 0 0 9 
10: 0 0 0 0 0 0 0 10 
11: 0 0 0 0 0 0 0 11 
12: 0 0 0 0 0 0 0 12 
13: 0 0 0 0 0 0 0 13 
14: 0 0 0 0 0 0 0 14 
15: 0 0 0 0 0 0 0 15 
16: 0 0 0 0 0 0 1 0 
17: 0 0 0 0 0 0 1 1 
18: 0 0 0 0 0 0 1 2 
19: 0 0 0 0 0 0 1 3 
20: 0 0 0 0 0 0 1 4 
21: 0 0 0 0 0 0 1 5 
22: 0 0 0 0 0 0 1 6 
23: 0 0 0 0 0 0 1 7 
24: 0 0 0 0 0 0 1 8 
25: 0 0 0 0 0 0 1 9 
26: 0 0 0 0 0 0 1 10 
27: 0 0 0 0 0 0 1 11 
28: 0 0 0 0 0 0 1 12 
29: 0 0 0 0 0 0 1 13 
30: 0 0 0 0 0 0 1 14 
31: 0 0 0 0 0 0 1 15 
2147483647: 7 15 15 15 15 15 15 15 
-2147483648: 8 0 0 0 0 0 0 0 
$

0 コメント:

コメントを投稿