diff options
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/math/imul/index.html')
| -rw-r--r-- | files/uk/web/javascript/reference/global_objects/math/imul/index.html | 97 |
1 files changed, 0 insertions, 97 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/math/imul/index.html b/files/uk/web/javascript/reference/global_objects/math/imul/index.html deleted file mode 100644 index 21f5d59a3e..0000000000 --- a/files/uk/web/javascript/reference/global_objects/math/imul/index.html +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Math.imul() -slug: Web/JavaScript/Reference/Global_Objects/Math/imul -tags: - - JavaScript - - Math - - imul - - Довідка - - метод -translation_of: Web/JavaScript/Reference/Global_Objects/Math/imul ---- -<div>{{JSRef}}</div> - -<p>Функція <strong><code>Math.imul()</code></strong> повертає результат C-подібного 32-бітного множення двох аргументів.</p> - -<div>{{EmbedInteractiveExample("pages/js/math-imul.html")}}</div> - -<p class="hidden">Джерело цих інтерактивних прикладів зберігається у репозиторії на GitHub. Якщо ви маєте бажання зробити свій внесок у проект інтерактивних прикладів - будь ласка, зклонуйте репозиторій <a href="https://github.com/mdn/interactive-examples">https://github.com/mdn/interactive-examples</a> та пришліть нам pull request.</p> - -<h2 id="Синтаксис">Синтаксис</h2> - -<pre class="syntaxbox">var <em>product</em> = Math.imul(<em>a</em>, <em>b</em>);</pre> - -<h3 id="Аргументи">Аргументи</h3> - -<dl> - <dt><code>a</code></dt> - <dd>Перше число.</dd> - <dt><code>b</code></dt> - <dd>Друге число.</dd> -</dl> - -<h3 id="Результат">Результат</h3> - -<p>Результат C-подібного 32-бітного множення даних аргументів.</p> - -<h2 id="Опис">Опис</h2> - -<p><code>Math.imul()</code> дає можливість виконувати 32-бітне цілочисельне множення з C-подібною семантикою. Ця особливість дуже корисна для проектів на зразок <a href="http://en.wikipedia.org/wiki/Emscripten">Emscripten</a>.</p> - -<p>У зв'язку з тим, що <code>imul()</code> - це статичний метод <code>Math</code>, слід завжди викликати його як <code>Math.imul()</code>, аніж як метод створеного вами об'єкту <code>Math</code> (оскільки <code>Math</code> не являється конструктором).</p> - -<p>Якщо ви використаєте звичайні числа із рухомою комою в imul, ви отримаєте значну деградацію продуктивності. Причина криється у доволі коштовній з точки зору ресурсів конвертації числа із рухомою комою у ціле для виконання множення, і зворотній конвертації результату. <code>imul()</code> існує у зв'язку із тим, що він швидший у єдиному (поки що) випадку: застосування у AsmJS. AsmJS дозволяє JIST-оптимізаторам простіше реалізовувати цілі числа всередині у JavaScript. Множення двох чисел, що уже зберігаються як цілі (що, поки що, можливо лише з AsmJS) за допомогою imul - це єдина потенційна можливість для Math.imul покращити продуктивність у сучасних браузерах.</p> - -<h2 id="Приклади">Приклади</h2> - -<h3 id="Застосування_Math.imul()">Застосування <code>Math.imul()</code></h3> - -<pre class="brush: js">Math.imul(2, 4); // 8 -Math.imul(-1, 8); // -8 -Math.imul(-2, -2); // 4 -Math.imul(0xffffffff, 5); // -5 -Math.imul(0xfffffffe, 5); // -10 -</pre> - -<h2 id="Поліфіл">Поліфіл</h2> - -<p>Цей метод може бути реалізований за допомогою наступної функції:</p> - -<pre class="brush: js">Math.imul = Math.imul || function(a, b) { - var aHi = (a >>> 16) & 0xffff; - var aLo = a & 0xffff; - var bHi = (b >>> 16) & 0xffff; - var bLo = b & 0xffff; - // зсув на 0 фіксує знак старшої частини - // |0 наприкінці перетворює беззнакове значення у число із знаком - return ((aLo * bLo) + (((aHi * bLo + aLo * bHi) << 16) >>> 0) | 0); -}; -</pre> - -<h2 id="Специфікації">Специфікації</h2> - -<table class="standard-table"> - <tbody> - <tr> - <th scope="col">Специфікація</th> - <th scope="col">Статус документу</th> - <th scope="col">Примітка</th> - </tr> - <tr> - <td>{{SpecName('ES6', '#sec-math.imul', 'Math.imul')}}</td> - <td>{{Spec2('ES6')}}</td> - <td>Первинне визначення.</td> - </tr> - <tr> - <td>{{SpecName('ESDraft', '#sec-math.imul', 'Math.imul')}}</td> - <td>{{Spec2('ESDraft')}}</td> - <td> </td> - </tr> - </tbody> -</table> - -<h2 id="Підтримка_у_браузерах">Підтримка у браузерах</h2> - -<p class="hidden">Таблиця сумісності на цій сторінці сформована автоматично із структурованих даних. Якщо ви маєте бажання зробити свій внесок до цих даних - будь-ласка, ось репозиторій <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a>, надішліть нам свій pull request.</p> - -<p>{{Compat("javascript.builtins.Math.imul")}}</p> |
