C++で16進数を10進数に変換するプログラムの作成方法
16進数が入力として与えられたとき、その16進数を10進数に変換するのが本記事のテーマです。
コンピュータにおける16進数は基数16で表現され、10進数は基数10で表現されます。10進数では0〜9の数字のみを使用しますが、16進数では0〜15までの値を扱うことができ、10以上の値はそれぞれA(10)、B(11)、C(12)、D(13)、E(14)、F(15)という英字で表されます。
16進数から10進数への変換手順
16進数を10進数に変換するには、以下の手順に従います。
- 右端の桁から順に数字を取り出し、0から始まるべき乗を掛けていきます。指数は「桁数 − 1」になるまで1ずつ増やします。
- 16進数を変換するため、べき乗の基数は16になります。
- 各桁の値に基数とべき乗を掛け、その結果を記録します。
- すべての積を合計したものが、最終的な10進数の値となります。
以下は、16進数を10進数に変換する流れを図示したものです。

計算例
入力:ACD A(10) は次のように10進数に変換される:10 × 16^2 = 2560 C(12) は次のように10進数に変換される:12 × 16^1 = 192 D(13) は次のように10進数に変換される:13 × 16^0 = 13 出力:合計 = 13 + 192 + 2560 = 2765
アルゴリズム
開始 ステップ1→ 16進数を10進数に変換する関数を宣言する int convert(char num[]) int len = strlen(num) を設定 int base = 1 を設定 int temp = 0 を設定 for (int i=len-1; i>=0; i--) のループを実行 もし (num[i] >= '0' && num[i] <= '9') ならば temp += (num[i] - 48) * base base = base * 16 そうでなく もし (num[i] >= 'A' && num[i] <= 'F') ならば temp += (num[i] - 55) * base base = base * 16 temp を返す ステップ2→ main() 内で char num[] = "3F456A" を宣言 convert(num) を呼び出す 終了
サンプルコード
#include<iostream>
#include<string.h>
using namespace std;
// 16進数を10進数に変換する関数
int convert(char num[]) {
int len = strlen(num);
int base = 1;
int temp = 0;
for (int i=len-1; i>=0; i--) {
if (num[i]>='0' && num[i]<='9') {
temp += (num[i] - 48)*base;
base = base * 16;
}
else if (num[i]>='A' && num[i]<='F') {
temp += (num[i] - 55)*base;
base = base*16;
}
}
return temp;
}
int main() {
char num[] = "3F456A";
cout<<num<<" after converting to decimal becomes : "<<convert(num)<<endl;
return 0;
}
実行結果
上記のコードを実行すると、次のような出力が得られます。
3F456A after converting to decimal becomes : 4146538
-
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進数に変換する流れを図で表したものです。 具体例 入