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

use*_*197 9 c++ hex decimal built-in

在c ++中是否有一个内置函数可以从用户那里获取十进制输入并将其转换为十六进制,反之亦然?我已经尝试使用我编写的函数,但我想知道是否有一个内置的函数来最小化代码.提前致谢.

P0W*_*P0W 28

十进制到十六进制: -

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

std::cout << res;
Run Code Online (Sandbox Code Playgroud)

十六进制到十进制: -

std::stringstream ss;
ss  << hex_value ; // std::string hex_value
ss >> std::hex >> decimal_value ; //int decimal_value

std::cout << decimal_value ;
Run Code Online (Sandbox Code Playgroud)

参考:std::hex,std::stringstream

  • 对于读入,您可以直接读入整数类型,并避免使用字符串流和字符串。 (2认同)

Ben*_*igt 7

许多编译器支持该itoa功能(出现在POSIX标准中,但不在C或C++标准中).Visual C++称之为_itoa.

#include <stdlib.h>

char hexString[20];
itoa(value, hexString, 16);
Run Code Online (Sandbox Code Playgroud)

请注意,不存在十进制值或十六进制值.数值始终以二进制形式存储.只有数字的字符串表示具有特定的基数(基数).

当然,当值应该在较长的消息中显示时,将%x格式说明符与任何printf函数一起使用是很好的.