Функция math.Ilogb
Функция math.Ilogb возвращает целочисленный двоичный порядок числа,
то есть показатель степени двойки для нормализованного представления числа.
В качестве единственного аргумента функция принимает число типа float64,
а возвращает значение типа int. Если аргумент равен нулю, функция возвращает
константу math.MinInt32. Если аргумент является бесконечностью или NaN,
функция возвращает math.MaxInt32.
Синтаксис
math.Ilogb(x)
Пример
Давайте получим двоичный порядок числа 16:
package main
import (
"fmt"
"math"
)
func main() {
res := math.Ilogb(16)
fmt.Println(res)
}
Результат выполнения кода:
4
Число 16 представляется как 2⁴, поэтому функция возвращает 4.
Пример
Давайте получим двоичный порядок числа 0.5:
package main
import (
"fmt"
"math"
)
func main() {
res := math.Ilogb(0.5)
fmt.Println(res)
}
Результат выполнения кода:
-1
Число 0.5 представляется как 2⁻¹, поэтому функция возвращает -1.
Пример
Давайте проверим поведение функции для нулевого аргумента:
package main
import (
"fmt"
"math"
)
func main() {
res := math.Ilogb(0)
fmt.Println(res)
}
Результат выполнения кода:
-2147483648
Для нулевого аргумента функция возвращает константу math.MinInt32.
Пример
Давайте проверим поведение функции для отрицательного числа:
package main
import (
"fmt"
"math"
)
func main() {
res := math.Ilogb(-32)
fmt.Println(res)
}
Результат выполнения кода:
5
Функция игнорирует знак числа и возвращает порядок абсолютного значения. Число 32 представляется как 2⁵, поэтому результат равен 5.
Смотрите также
-
функцию
math.Logb,
которая возвращает двоичный порядок числа в видеfloat64 -
функцию
math.Frexp,
которая разбивает число на мантиссу и двоичный порядок -
функцию
math.Ldexp,
которая выполняет обратную операцию - умножает число на 2 в степени -
функцию
math.Pow,
которая возводит число в произвольную степень