web-dev-qa-db-ja.com

10進数から16進数への変換C ++組み込み関数

ユーザーから10進数の入力を取り、それを16進数に、またはその逆に変換するC++の組み込み関数はありますか?私が書いた関数を使用して試してみましたが、コードを少し最小化する組み込み関数があるかどうか疑問に思いました。前もって感謝します。

8
user3002197

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::hexstd::stringstream

26
P0W

多くのコンパイラはitoa関数をサポートしています(この関数はPOSIX標準にありますが、CまたはC++標準にはありません)。 Visual C++はそれを_itoaと呼びます。

#include <stdlib.h>

char hexString[20];
itoa(value, hexString, 16);

10進値や16進値などはないことに注意してください。数値は常にバイナリで格納されます。数値の文字列表現のみが特定の基数(基数)を持っています。

もちろん、値が長いメッセージで表示されることになっている場合は、printf関数のいずれかで%x書式指定子を使用することをお勧めします。

7
Ben Voigt