C++ 中是否有一个内置函数可以接受用户输入的十进制并将其转换为十六进制,反之亦然?我已经使用我编写的函数进行了尝试,但我想知道是否有一个内置函数可以稍微减少代码。预先感谢。
十进制转十六进制:-
#include <sstream>
std::stringstream ss;
ss << std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );
std::cout << res;
十六进制转十进制:-
#include <sstream>
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);
请注意,没有十进制值或十六进制值之类的东西。 数值始终以二进制形式存储。 只有数字的字符串表示形式才有特定的基数(基数)。
当然,当值应该显示在较长的消息中时,将
%x
格式说明符与任何 printf
函数一起使用是很好的选择。
#include <iostream>
using namespace std;
int DecToHex(int p_intValue)
{
char *l_pCharRes = new (char);
sprintf(l_pCharRes, "%X", p_intValue);
int l_intResult = stoi(l_pCharRes);
cout << l_intResult<< "\n";
return l_intResult;
}
int main()
{
int x = 35;
DecToHex(x);
return 0;
}