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

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

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