十进制到十六进制转换c++内置函数

Decimal to hex conversion c++ built-in function

本文关键字:内置 函数 c++ 转换 十六进制 十进制      更新时间:2023-10-16

c++中是否有一个内置函数可以接受用户的十进制输入并将其转换为十六进制,反之亦然??我用我写的一个函数尝试过,但我想知道是否有一个内置的函数可以将代码最小化一点。提前谢谢。

十进制到十六进制:-

std::stringstream ss;
ss<< std::hex << decimal_value; // int decimal_value
std::string res ( ss.str() );
std::cout << res;

十六进制到十进制:-

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

许多编译器都支持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;
}