next up previous contents
Next: D.2.6 浮動小数点数の書式指定 (1) Up: D.2 簡単な入門 Previous: D.2.4 フラッシュ

D.2.5 8進数, 10進数, 16進数

printf() では、整数データに対して、 %o, %d, %x という書式指定で、 それぞれ 8 進数, 10 進数, 16進数を表示できた。 C++ ではどうするか?

kakezan.C

// kakezan.C -- 掛け算 FF

#include <iostream.h>

int main()
{
  int i, j;

  // 掛け算 FF
  cout.setf(ios::hex, ios::basefield);
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  // 掛け算 77
  cout.setf(ios::oct, ios::basefield);
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  // 掛け算 99
  cout.setf(ios::dec, ios::basefield);
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  return 0;
}

kakezan-new.C

// kakezan.C -- 掛け算 FF

#include <iostream.h>
#include <iomanip.h>

int main()
{
  int i, j;

  // 掛け算 FF
  cout << hex;
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 77
  cout << oct;
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 99
  cout << dec;
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  return 0;
}

kakezan-new2.C

// kakezan-new2.C -- 掛け算 FF

#include <iostream.h>
#include <iomanip.h>

int main()
{
  int i, j;

  // 掛け算 FF
  cout << setbase(16);
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 77
  cout << setbase(8);
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 99
  cout << setbase(10);
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  return 0;
}


next up previous contents
Next: D.2.6 浮動小数点数の書式指定 (1) Up: D.2 簡単な入門 Previous: D.2.4 フラッシュ
Masashi Katsurada
平成18年4月28日