ユーザーから10進数の入力を取り、それを16進数に、またはその逆に変換するC++の組み込み関数はありますか?私が書いた関数を使用して試してみましたが、コードを少し最小化する組み込み関数があるかどうか疑問に思いました。前もって感謝します。
10進数から16進数:-
std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );
std::cout << res;
16進数から10進数へ:-
std::stringstream ss;
ss << hex_value ; // std::string hex_value
ss >> std::hex >> decimal_value ; //int decimal_value
std::cout << decimal_value ;
参照: std::hex
、 std::stringstream
多くのコンパイラはitoa
関数をサポートしています(この関数はPOSIX標準にありますが、CまたはC++標準にはありません)。 Visual C++はそれを_itoa
と呼びます。
#include <stdlib.h>
char hexString[20];
itoa(value, hexString, 16);
10進値や16進値などはないことに注意してください。数値は常にバイナリで格納されます。数値の文字列表現のみが特定の基数(基数)を持っています。
もちろん、値が長いメッセージで表示されることになっている場合は、printf
関数のいずれかで%x
書式指定子を使用することをお勧めします。