Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Основные функции > логарифм - экспонента - степень > log2

log2

логарифм по основанию 2

Синтаксис

y = log2(x)
[m, e] = log2(u)

Аргументы

x, y

массивы десятичных или комплексных чисел, такие, что 2.^y = x.

u, m, e

массивы десятичных чисел, такие, что u = m .* 2.^e, при sign(m)=sign(u) и 0.5 ≤ abs(m) < 1.

Описание

log2(x) является поэлементным логарифмом по основанию 2 y(i,j) = log2(x(i,j)).

log2(-%inf) == %inf + log2(-1)

[m, e] = log2(u) вычисляет поэлементно мантиссу по основанию 2 m и экспоненту e каждого элемента u. Следовательно, для любого индекса k имеем u(k) = m(k) .* 2.^e(k) при 0.5 ≤ |m(k)| < 1.

  • [m, e] = log2([0 %nan -%inf %inf]) возвращает m=[0 NaN -Inf Inf] и e=[0 0 0 0].
  • Этот синтаксис соответствует функции frexp() ANSI C.

Примеры

Логарифм по основанию 2:

L = log2([-1, 1, 2, %i, -%i])
clean(2.^L)
L = log2([0 %nan %inf])
2 .^ L
L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид
2 .^ L                        // -Inf не получится
--> L = log2([-1, 1, 2, %i, -%i])
 L  =
   4.5323601i   0.   1.   2.2661801i  -2.2661801i

--> clean(2.^L)
 ans  =
  -1.   1.   2.   i   -i

--> L = log2([0 %nan %inf])
 L  =
  -Inf   Nan   Inf

--> 2 .^ L
 ans  =
   0.   Nan   Inf

--> L = log2([0 %nan %inf -%inf]) // -%inf<0 превращает результат в комплексный вид
 L  =
  -Inf   Nan + Nani   Inf   Inf + 4.5323601i

--> 2 .^ L                        // -Inf не получится
 ans  =
   0.   Nan + Nani   Inf   Nan + Nani

Разложение на мантиссу по основанию 2 + экспоненту:

[m, e] = log2([-3, -1.5, -1, 0, 4, 1e20])
m .* 2.^e
--> [m, e] = log2([-3, -1.5, -1, 0, 4, 1e20])
 e  =
   2.     1.     1.    0.   3.   67.
 m  =
  -0.75  -0.75  -0.5   0.   0.5   0.6776264

--> m .* 2.^e
 ans  =
  -3.  -1.5  -1.   0.   4.   1.000D+20

np = number_properties;
x = [%eps np("tiniest") np("tiny") np("huge")]
[m, e] = log2(x)
--> x = [%eps np("tiniest") np("tiny") np("huge")]
 x  =
    2.220D-16    4.94D-324    2.22D-308    1.79D+308

--> [m, e] = log2(x)
 e  =
  - 51.  - 1073.  - 1021.    1024.
 m  =
    0.5    0.5    0.5    1.

[m, e] = log2([0 %nan -%inf %inf])
m .* 2.^e
-->[m, e] = log2([0 %nan -%inf %inf])
 e  =
    0.    0.    0.    0.
 m  =
    0.    Nan  - Inf    Inf

-->m .* 2.^e
 ans  =
    0.    Nan  - Inf    Inf

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

  • log — натуральный логарифм
  • log10 — десятичный логарифм
  • nextpow2 — степень двойки, дающая равное или большее число
  • bitstring — Строка, дающее символьное битовое представление числа
  • hat — (^) возведение в степень
  • ieee — установка режима исключения с плавающей запятой
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:54 CET 2020