C ++中的StringStream,用于将十进制转换为十六进制并返回

在本节中,我们将看到如何在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