РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
111 of 815 menu

Функция frexp

Функция frexp раскладывает число с плавающей точкой на мантиссу и экспоненту. В первый параметр мы передаем исходное число, во второй - указатель на целочисленную переменную, в которую будет записана экспонента. Функция возвращает мантиссу - число в диапазоне от 0.5 до 1.0 (не включая границы). Исходное число при этом представляется в виде: мантисса * 2экспонента.

Синтаксис

#include <cmath> double frexp(double x, int* exp); float frexp(float x, int* exp); long double frexp(long double x, int* exp);

Пример

Давайте разложим число 8.0 на мантиссу и экспоненту:

#include <iostream> #include <cmath> using namespace std; int main() { double x = 8.0; int exp; double mantissa = frexp(x, &exp); cout << "mantissa = " << mantissa << endl; cout << "exp = " << exp << endl; return 0; }

Результат выполнения кода:

"mantissa = 0.5" "exp = 4"

Пример

Давайте разложим дробное число 0.75 на мантиссу и экспоненту:

#include <iostream> #include <cmath> using namespace std; int main() { double x = 0.75; int exp; double mantissa = frexp(x, &exp); cout << "mantissa = " << mantissa << endl; cout << "exp = " << exp << endl; return 0; }

Результат выполнения кода:

"mantissa = 0.75" "exp = 0"

Пример

Давайте проверим обратное преобразование - соберем исходное число из мантиссы и экспоненты:

#include <iostream> #include <cmath> using namespace std; int main() { double x = 20.0; int exp; double mantissa = frexp(x, &exp); double res = mantissa * pow(2, exp); cout << "mantissa = " << mantissa << endl; cout << "exp = " << exp << endl; cout << "res = " << res << endl; return 0; }

Результат выполнения кода:

"mantissa = 0.625" "exp = 5" "res = 20"

Смотрите также

  • функция ldexp,
    которая выполняет обратное преобразование
  • функция modf,
    которая разделяет число на целую и дробную части
  • функция pow,
    которая возводит число в степень
  • функция fabs,
    которая возвращает модуль числа
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить