C++で8進数を10進数に変換するプログラムの書き方
8進数が入力として与えられたとき、それを10進数に変換するのが本記事のテーマです。
コンピュータ上の10進数は基数10で表現されます。一方、8進数は基数8で表現され、使用できる数字は0〜7に限られます。これに対して10進数では、0〜9までの任意の数字を使用することができます。
8進数から10進数への変換手順
- 右から左へ向かって剰余演算により各桁を取り出し、0から始まるべき乗を掛けます。指数は「桁数 − 1」に達するまで1ずつ増加させます。
- 8進数を変換するため、べき乗の基数は8となります(8進数の基数が8であるため)。
- 入力された数値の各桁に基数とべき乗を掛け、その結果を記録します。
- すべての積を合計した値が、最終的に求める10進数となります。
以下は、8進数を10進数へ変換する流れを図で表したものです。

計算例
入力: 451
1 は次のように変換される: 1 × 8^0 = 1
5 は次のように変換される: 5 × 8^1 = 40
4 は次のように変換される: 4 × 8^2 = 256
出力: 合計 = 1 + 40 + 256 = 297
アルゴリズム
開始
ステップ1 → 8進数を10進数に変換する関数を宣言する
int convert(int num)
int temp = num とする
int val = 0 とする
int base = 1 とする
int count = temp とする
count が真である間ループ
int digit = count % 10 とする
count = count / 10 とする
val += digit * base とする
base = base * 8 とする
ループ終了
return val
ステップ2 → main() 内で
int num = 45 とする
convert(num) を呼び出す
終了
C++による実装例
#include <iostream>
using namespace std;
// 8進数を10進数に変換する関数
int convert(int num) {
int temp = num;
int val = 0;
int base = 1;
int count = temp;
while (count) {
int digit = count % 10;
count = count / 10;
val += digit * base;
base = base * 8;
}
return val;
}
int main() {
int num = 45;
cout <<"after conversion value is "<<convert(num);
}
出力
上記のコードを実行すると、次の出力が得られます。
after conversion value is 37
この例では、8進数の「45」が10進数の「37」に変換されています。これは 4 × 81 + 5 × 80 = 32 + 5 = 37 という計算に相当します。
-
C++で10進数を2進数に変換するプログラムの書き方
コンピューターの内部では、すべてのデータが2進数(基数2)として扱われています。一方、私たちが日常的に使う10進数は「0〜9」の数字を組み合わせた基数10の記数法です。この記事では、C++を使って入力された10進数を2進数へ変換するプログラムの考え方と実装方法を解説します。10進数から2進数への変換手順10進数を2進数に変換する基本的な方法は、「2で割った余りを順番に記録していく」ものです。具体的には次の手順で行います。まず、変換したい数値を基数である2で割り、商と余りを求めます。余りが0であればその桁は「0」、1であれば「1」として記録します。続いて、得られた商をさらに2で割り、同じように余
-
C++で2進数を10進数に変換するプログラムの作り方
2進数が入力として与えられたとき、その2進数を10進数へ変換するのが本記事のテーマです。 コンピュータにおける10進数は基数10で表現されます。一方、2進数は基数2で表現され、使用するのは0と1という2つの数字だけです。それに対して10進数では、0から9までの任意の数字を扱うことができます。 2進数を10進数に変換するには、右端の桁から順に各桁の数字を取り出し、2のべき乗(0乗から始まり、桁数-1乗まで1ずつ増加)を掛け合わせます。そして、その掛け算の結果をすべて足し合わせることで、最終的な10進数の値が求まります。 以下は、2進数を10進数に変換する流れを図で表したものです。 具体例 入