Различные способы преобразования шестнадцатеричной строки в целое число в C++ STL
Шестнадцатеричное число — это число, основание которого равно 16. Имеет цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 и 15. И 10, 11. , 12, 13, 14 и 15 эти числа обозначаются буквами A, B, C, D, E, F. В C++ STL есть определенные свойства, которые помогают легко преобразовать шестнадцатеричную строку или число в десятичное число.
Существует 5 различных способов преобразования шестнадцатеричной строки в целое число в C++:
- Использование функции стои()
- Использование функции sscanf()
- Использование функции stoul()
- Использование метода строкового потока
- Использование функции boost:lexical_cast
Давайте начнем подробно обсуждать каждый из этих методов.
1. Использование функции C++ STL stoi()
stoi() — это функция STL в С++, которая используется для преобразования любого числа (двоичного, восьмеричного, шестнадцатеричного) в целое число без знака в указанном основании. Он определен в заголовочном файле <string>. Он содержит три параметра:
- Во-первых, это имя строки, которое означает строку, которую вы хотите преобразовать в десятичную.
- Второй — это порядковый номер, по умолчанию он равен 0, или вы можете инициализировать его с помощью nullptr.
- Последний является основой входной строки. Это также необязательный параметр. По умолчанию это 10.
Эта функция возвращает целочисленное значение данной шестнадцатеричной строки.
Синтаксис:
int stoi (const string& str, [size_t* idx], [int base]);
Ниже приведена программа C++ для реализации функции stoi() для преобразования шестнадцатеричной строки в целое число:
2. Использование функции C++ STL sscanf()
Функция sscanf в основном используется для чтения данных из строкового буфера.
Синтаксис:
int sscanf( const char* buffer, const char* format,….);
Здесь буфер представляет собой указатель на строку символов с нулевым символом в конце для чтения данных, а указатель формата на строку символов с нулевым символом в конце указывает, как читать данные, и, наконец, мы добавим еще один параметр, где хранить значение .
Ниже приведена программа C++ для преобразования шестнадцатеричной строки в целое число с помощью функции sscanf():
3. Использование функции C++ STL stoul()
Это функция STL в C++11, определенная в заголовочном файле <string>, которая также используется для преобразования строки в целое число.
Синтаксис:
stoul (const string& str, size_t* idx, int base);
Параметры:
- str: Входная строка с представлением целого числа.
- idx: Указатель на объект типа size_t, значение которого равно 0. Это также может быть нулевой указатель, в этом случае он не используется.
- база: Числовая база (основание), которая определяет допустимые символы и их интерпретацию. Здесь будет 16, так как это шестнадцатеричная строка.
Ниже приведена программа C++ для преобразования шестнадцатеричной строки в целое число с помощью функции stoul():
4. Использование метода строкового потока C++ STL
Когда базовый формат поля установлен в шестнадцатеричный, целые значения этого шестнадцатеричного значения сохраняются в потоке. Это делается с помощью шестигранного манипулятора.
Ниже приведена программа C++ для реализации метода stringstream для преобразования шестнадцатеричной строки в целое число:
5. Использование функции C++ STL boost:lexical_cast
В C++ STL есть функция boost, которую можно использовать для преобразования шестнадцатеричной строки в целое число. Сначала он передает строку, а затем преобразует ее в целое число с помощью boost::lexical_cast<int>.
Ниже приведена программа C++ для реализации функции boost:lexical_cast для преобразования шестнадцатеричной строки в целое число:
Выход:
221