Open In App

StringStream in C++ for Decimal to Hexadecimal and back

Improve
Improve
Like Article
Like
Save
Share
Report

Stringstream is stream class present in C++ which is used for doing operations on a string. It can be used for formatting/parsing/converting a string to number/char etc. Hex is an I/O manipulator that takes reference to an I/O stream as parameter and returns reference to the stream after manipulation. Here is a quick way to convert any decimal to hexadecimal using stringstream: 

CPP




// CPP program to convert integer to
// hexadecimal using stringstream and
// hex I/O manipulator.
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    int i = 942;
    stringstream ss;
    ss << hex << i;
    string res = ss.str();
    cout << "0x" << res << endl; // this will print 0x3ae
    return 0;
}


Output:

0x3ae

The time complexity of this program is O(1) as it only performs a single operation. 

The space complexity is also O(1) as no additional space is used.

If we want to change hexadecimal string back to decimal you can do it by following way: 

CPP




// CPP program to convert hexadecimal to
// integer using stringstream and
// hex I/O manipulator.
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
    string hexStr = "0x3ae";
    unsigned int x;
    stringstream ss;
    ss << std::hex << hexStr;
    ss >> x;
    cout << x << endl; // this will print 942
    return 0;
}


Output:

942

Time Complexity: The time complexity of the above algorithm is O(1), as we are only performing a few operations.

Space Complexity: The space complexity of the above algorithm is O(1), as we are only using a few variables.



Last Updated : 14 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads