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

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

C++で2進数を10進数に変換するプログラムの作り方

具体例

入力: 1010
    最下位の 0 は次のように変換される: 0 × 2^0 = 0
    下から2桁目の 1 は: 1 × 2^1 = 2
    下から3桁目の 0 は: 0 × 2^2 = 0
    下から4桁目の 1 は: 1 × 2^3 = 8
出力: 合計 = 0 + 2 + 0 + 8 = 10

アルゴリズム

開始
Step1→ 2進数を10進数に変換する関数を宣言する
    int convert(string str)
    string n = str を設定
    int val = 0 を設定
    int temp = 1 を設定
    int len = n.length() を設定
    ループ: for (int i = len - 1; i >= 0; i--)
        もし n[i] == '1' ならば
            val += temp を実行
        終了
        temp = temp * 2 を実行
    終了
    return val
Step 2→ main() 内で
    string val = "11101" を設定
    convert(val) を呼び出す
終了

C++での実装例

#include <iostream>
#include <string>
using namespace std;
// 2進数を10進数に変換する関数
int convert(string str) {
    string n = str;
    int val = 0;
    int temp = 1;
    int len = n.length();
    for (int i = len - 1; i >= 0; i--) {
        if (n[i] == '1')
            val += temp;
        temp = temp * 2;
    }
    return val;
}
int main() {
    string val = "11101";
    cout << val << " を10進数に変換した結果 : " << convert(val);
}

出力結果

上記のコードを実行すると、次のような出力が得られます。

11101 を10進数に変換した結果 : 29

  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++でピラミッドの体積を計算するプログラムの作り方|底面の形状別の公式と実装例

    ピラミッドの底面の種類に応じた辺の長さが与えられたとき、そのピラミッドの体積を計算するのが本記事のテーマです。 ピラミッドとは、外側の面がすべて三角形で構成され、それらが共通の一点(頂点)で交わることで鋭い角を形成する3次元図形です。ピラミッドの体積は、底面がどのような形状であるかによって異なります。 ピラミッドの底面にはさまざまな種類があり、代表的なものは以下の通りです。 底面の形状別の体積の求め方 三角形の底面(三角錐) 底面が三角形の場合、ピラミッドの体積は次の公式で求められます。 体積 = (1/6) × a × b × h 正方形の底面(四角錐) 底面が正方形の場合、ピラミッドの体