C++
 Computer >> コンピューター >  >> プログラミング >> C++

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進数へ変換する流れを図で表したものです。

C++で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 という計算に相当します。


  1. C++で10進数を2進数に変換するプログラムの書き方

    コンピューターの内部では、すべてのデータが2進数(基数2)として扱われています。一方、私たちが日常的に使う10進数は「0〜9」の数字を組み合わせた基数10の記数法です。この記事では、C++を使って入力された10進数を2進数へ変換するプログラムの考え方と実装方法を解説します。10進数から2進数への変換手順10進数を2進数に変換する基本的な方法は、「2で割った余りを順番に記録していく」ものです。具体的には次の手順で行います。まず、変換したい数値を基数である2で割り、商と余りを求めます。余りが0であればその桁は「0」、1であれば「1」として記録します。続いて、得られた商をさらに2で割り、同じように余

  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進数に変換する流れを図で表したものです。 具体例 入