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

Функция math.Frexp

Функция math.Frexp разбивает число с плавающей точкой на две части: нормализованную мантиссу и целую степень двойки. Она возвращает два значения: мантиссу в виде числа с плавающей точкой в диапазоне [0.5, 1) или (-1, -0.5] для отрицательных чисел, и показатель степени в виде целого числа. В первый параметр мы передаем исходное число для разложения. Второй параметр функции возвращается по ссылке в виде указателя на целое число.

Математически функция работает по формуле: x = mantissa × 2^exponent. Если исходное число равно нулю, функция возвращает 0.0 и 0. Эта функция полезна при работе с представлением чисел с плавающей точкой на низком уровне или при оптимизации вычислений.

Синтаксис

mantissa, exponent := math.Frexp(x)

Пример

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

package main import ( "fmt" "math" ) func main() { mantissa, exponent := math.Frexp(8.0) fmt.Printf("mantissa: %.1f, exponent: %d\n", mantissa, exponent) }

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

"mantissa: 0.5, exponent: 4"

Проверяем: 0.5 × 2^4 = 0.5 × 16 = 8.0 — всё верно.

Пример

Давайте разложим отрицательное число -3.0:

package main import ( "fmt" "math" ) func main() { mantissa, exponent := math.Frexp(-3.0) fmt.Printf("mantissa: %.1f, exponent: %d\n", mantissa, exponent) }

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

"mantissa: -0.8, exponent: 2"

Проверяем: -0.8 × 2^2 = -0.8 × 4 = -3.0 — всё верно.

Пример

Давайте разложим число 0.375:

package main import ( "fmt" "math" ) func main() { mantissa, exponent := math.Frexp(0.375) fmt.Printf("mantissa: %.2f, exponent: %d\n", mantissa, exponent) }

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

"mantissa: 0.75, exponent: -1"

Проверяем: 0.75 × 2^(-1) = 0.75 × 0.5 = 0.375 — всё верно.

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

  • функцию math.Ldexp,
    которая выполняет обратную операцию — умножает мантиссу на степень двойки
  • функцию math.Modf,
    которая разбивает число на целую и дробную части
  • функцию math.Log2,
    которая вычисляет двоичный логарифм числа
  • функцию math.Pow,
    которая возводит число в указанную степень
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить