Different Ways to Convert Hex String to Integer in C++ STL
Last Updated :
08 Nov, 2022
A hexadecimal number is a number whose base is 16. has numerals 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, and 15. And 10, 11, 12, 13, 14, and 15 these numbers are denoted by A, B, C, D, E, F. In C++ STL there are certain properties that help to convert a hexadecimal string or number to a decimal number easily.
There are 5 different ways to convert a Hex string to an Integer in C++:
- Using stoi() function
- Using sscanf() function
- Using stoul() function
- Using string stream method
- Using boost:lexical_cast function
Let’s start discussing each of these methods in detail.
1. Using C++ STL stoi() function
stoi() is an STL function in c++ that is used to convert any number(binary, octal, hexadecimal) to an unsigned integer in a specified base. It is defined in the <string> header file. It contains three parameters:
- First is the string name, which means the string that you want to convert into decimal.
- Second is an index number, by default, it’s 0, or you can initialize it with nullptr.
- The last one is the base of the input string. It is also an optional parameter. By default, it’s 10.
This function returns an integer value of the given hex string.
Syntax:
int stoi (const string& str, [size_t* idx], [int base]);
Below is the C++ program to implement stoi() function to convert a hex string to an integer:
C++
#include <iostream>
#include <string.h>
using namespace std;
int main()
{
string s = "DD" ;
int ans = stoi(s, 0, 16);
cout << ans << endl;
return 0;
}
|
2. Using C++ STL sscanf() function
sscanf function is basically used to read the data from a string buffer.
Syntax:
int sscanf( const char* buffer, const char* format,….);
Here the buffer is a pointer to a null-terminated character string to read the data and the format pointer to a null-terminated character string specifies how to read the data, and lastly, we will add one more parameter to where to store the value.
Below is the C++ program to convert a hex string to an integer using sscanf() function:
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s = "DD" ;
int ans;
sscanf (s.c_str(), "%x" , &ans);
cout << ans << endl;
return 0;
}
|
3. Using C++ STL stoul() function
This is an STL function in C++11 that is defined in the header file <string>, which is also used to convert a string to an integer.
Syntax:
stoul (const string& str, size_t* idx, int base);
Parameters:
- str: Input string, with the representation of an integral number.
- idx: Pointer to an object of type size_t, whose value is set by 0. It can also be null pointer, in which case it is not used.
- base: Numerical base(radix) that determines the valid characters and their interpretation. Here it will be 16, as it’s a hexadecimal string.
Below is the C++ program to convert a hex string to an Integer using stoul() function:
C++
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s = "DD" ;
int i = stoul(s, 0, 16);
cout << i << endl;
return 0;
}
|
4. Using C++ STL string stream method
When the base field format is set to hex, the integer values of that hex value are stored in the stream. It is done by using a hex manipulator.
Below is the C++ program to implement stringstream method to convert a hex string to an integer:
C++
#include <bits/stdc++.h>
using namespace std;
int main()
{
string s = "DD" ;
int i;
istringstream iss(s);
iss >> hex >> i;
cout << i << endl;
return 0;
}
|
5. Using C++ STL boost:lexical_cast function
In c++ STL there is a function called a boost, which can be used to convert a hex string to an integer. It first streams the string and then it converts it to an integer with boost::lexical_cast<int>.
Below is the C++ program to implement boost:lexical_cast function to convert a hex string to an integer:
C++
#include <iostream>
#include <string>
#include <boost/lexical_cast.hpp>
using namespace std;
int main()
{
string s = "DD" ;
int i = boost::lexical_cast< int >(s);
cout << i << endl;
return 0;
}
|
Output:
221
Similar Reads
Convert Hex String to Signed Integer in C++
This article discusses converting a hex string to a signed integer in C++. There are 5 ways to do this in C++: Using stoi() function.Using stoul() function.Using sscanf() function.Using stringstream method.Using boost:lexical_cast.1. Using stoi function stoi is a function in the string header file.
6 min read
How to Convert an Integer to a String in C++?
Integer and String are the two data types in C++ programming languages. An integer is generally used to represent the whole numbers in the number line. A String is a data structure that is used to save a collection of characters. It can be a word or a sentence. Moreover, it can also store the numeri
2 min read
Convert Octal String to Integer using stoi() Function in C++ STL
The octal numeral system, or oct for short, is the base-8 number system and uses the digits 0 to 7, that is to say, 10 octal represents eight, and 100 octal represents sixty-four. How to Convert Octal String To Integer in C++?We can use an in-built library function stoi() which stands for String to
2 min read
C++ - Convert String to Integer Vector
Strings are sometimes used to represent the numerical data which needs to be converted back to integer, but sometimes we may need to convert it to vector of integers instead due to some problems such as too large integer. In this article, we will learn different way to convert a string to integer ve
2 min read
How to Convert String to Date in C++?
In C++, we generally store the date and time data in the form of the object of type std::tm. Sometimes, this data is stored inside a string object and we need to convert it into the tm type for further processing. In this article, we will learn how to convert a string to date in C++. Example: Input:
2 min read
C++ Program to Convert String to Integer
Given a string of digits, the task is to convert the string to an integer. Examples: Input : str = "12345" Output : 12345 Input : str = "876538"; Output : 876538 Input : str = "0028"; Output : 28 C/C++ Code // C++ program to convert String into Integer #include <bits/stdc++.h> using namespace
1 min read
How to Convert wstring to string in C++?
std::wstring in C++, is a wide string type where each character is a wide character, typically used for internationalization. Sometimes, we need to convert a std::wstring to a std::string for compatibility with functions that only accept narrow strings. In this article, we will learn how to convert
2 min read
Warning: Cast From Integer to Pointer of Different Size in C++
In C++, pointers stores memory address as its value. Integers, on the other hand, hold numerical values. When we attempt to convert the value of integer to pointer directly, especially when the memory that is allocated to a pointer is smaller than the memory allocated to an integer data type, the co
3 min read
How to Convert an Enum to a String in C++?
In C, an enumeration is a user-defined data type whose members can be assigned some integer values. In this article, we are going to discuss how to convert an Enum to a String in C++. Example: Input: myColor = GREEN; Output: GreenConvert an Enum to a String in C++There are various methods to convert
2 min read
How to convert a single character to string in C++?
A string is a generally made up of a sequence of multiple characters. In this article, we will learn how to convert a single character to a string in C++. Example: Input: c = 'A'Output: s = "a"Explanation: Character c is converted to a string. Input: c = '#'Output: s = "#"Explanation: Character c is
4 min read