StringStream in C++ for Decimal to Hexadecimal and back
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.
Please Login to comment...