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

10進数から16進数、およびその逆のC++のStringStream


このセクションでは、C ++でDecimalを16進文字列に変換する方法、および16進文字列からDecimal文字列に変換する方法を説明します。この変換では、C++の文字列ストリーム機能を使用しています。

文字列ストリームは、文字列のフォーマット、解析、数値への変換などに使用されます。16進数はIOマニピュレータです。パラメータとしてIOストリームへの参照を取り、それを操作した後に文字列への参照を返します。

次の例では、10進数または16進数を変換する方法を示します。

サンプルコード

#include<iostream>
#include<sstream>
using namespace std;
main(){
   int decimal = 61;
   stringstream my_ss;
   my_ss << hex << decimal;
   string res = my_ss.str();
   cout << "The hexadecimal value of 61 is: " << res;
}

出力

The hexadecimal value of 61 is: 3d

上記の例では、抽出演算子「<<」を使用して、10進数から16進数を取得しています。次の例では、その逆を行います。この例では、16進文字列を16進に変換し、挿入演算子「>>」を使用して、文字列ストリームを整数に格納します。

サンプルコード

using namespace std;
main() {
   string hex_str = "0x3d"; //you may or may not add 0x before
   hex value
   unsigned int decimal;
   stringstream my_ss;
   my_ss << hex << hex_str;
   my_ss >> decimal;
   cout << "The Decimal value of 0x3d is: " << decimal;
}

出力

The Decimal value of 0x3d is: 61

  1. C++での10進数から16進数への変換プログラム

    10進数を入力として指定すると、タスクは指定された10進数を16進数に変換することです。 コンピューターの16進数は16を底とし、10進数は10を底とし、0〜9の値で表されますが、16進数は0〜15から始まる数字で、10はA、11はB、12はC、 Dとして13、Eとして14、Fとして15。 10進数を16進数に変換するには、指定された手順に従います- まず、指定された数値を変換数値の基本値で除算します。例: 6789を16を底とする16進数に変換し、商を取得して格納する必要があるため、6789を16で除算します。余りが0〜9の場合はそのまま保存し、余りが10〜15の場合は、文字形式でA-

  2. C++での2進数から10進数への変換プログラム

    2進数を入力として指定すると、タスクは指定された2進数を10進数に変換することです。 コンピューターの10進数は10進数で表され、2進数は2進数の0と1の2つしかないため、2進数で表されますが、10進数は0〜9から始まる任意の数値にすることができます。 2進数を10進数に変換するには、右から左に向かって残りの数字を抽出し、0から始まる2の累乗を掛けて、(桁数)–1まで1ずつ増やします。乗算された値を加算し続けて、最終的な10進数値を取得します。 以下に、2進数を10進数に変換する図を示します。 例 Input-: 1010    0 will be conver