在本节中,我们将看到如何在C ++中将十进制转换为十六进制字符串,以及如何从十六进制字符串转换为十进制字符串。对于此转换,我们使用C ++的stringstream功能。
字符串流用于格式化,解析,将字符串转换为数值等。十六进制是IO操作器。它以对IO流的引用作为参数,并在处理完该字符串后返回对该字符串的引用。
在下面的示例中,我们将看到如何转换十进制数或十六进制数。
#include<iostream> #include<sstream> using namespace std; main(){ int decimal = 61; stringstream my_ss; my_ss << hex << decimal; string res = my_ss.str(); cout << "The hexadecimal value of 61 is: " << res; }
输出结果
The hexadecimal value of 61 is: 3d
在上面的示例中,我们使用提取运算符“ <<”将十进制转换为十六进制。在下一个示例中,我们将进行相反的操作。在此示例中,我们将十六进制字符串转换为十六进制,然后使用插入运算符“ >>”将字符串流存储为整数。
using namespace std; main() { string hex_str = "0x3d"; //you may or may not add 0x before hex value unsigned int decimal; stringstream my_ss; my_ss << hex << hex_str; my_ss >> decimal; cout << "The Decimal value of 0x3d is: " << decimal; }
输出结果
The Decimal value of 0x3d is: 61