aboutsummaryrefslogtreecommitdiff
path: root/files/uk/web/javascript/reference/global_objects/math/clz32
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:43:23 -0500
commit218934fa2ed1c702a6d3923d2aa2cc6b43c48684 (patch)
treea9ef8ac1e1b8fe4207b6d64d3841bfb8990b6fd0 /files/uk/web/javascript/reference/global_objects/math/clz32
parent074785cea106179cb3305637055ab0a009ca74f2 (diff)
downloadtranslated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.gz
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.tar.bz2
translated-content-218934fa2ed1c702a6d3923d2aa2cc6b43c48684.zip
initial commit
Diffstat (limited to 'files/uk/web/javascript/reference/global_objects/math/clz32')
-rw-r--r--files/uk/web/javascript/reference/global_objects/math/clz32/index.html113
1 files changed, 113 insertions, 0 deletions
diff --git a/files/uk/web/javascript/reference/global_objects/math/clz32/index.html b/files/uk/web/javascript/reference/global_objects/math/clz32/index.html
new file mode 100644
index 0000000000..9c77d005ec
--- /dev/null
+++ b/files/uk/web/javascript/reference/global_objects/math/clz32/index.html
@@ -0,0 +1,113 @@
+---
+title: Math.clz32()
+slug: Web/JavaScript/Reference/Global_Objects/Math/clz32
+tags:
+ - ECMAScript 2015
+ - JavaScript
+ - Math
+ - Довідка
+ - метод
+translation_of: Web/JavaScript/Reference/Global_Objects/Math/clz32
+---
+<div>{{JSRef}}</div>
+
+<p>Функція <strong><code>Math.clz32()</code></strong> повертає кількість ведучих нульових бітів 32-бітного двоїчного уявлення даного числа.</p>
+
+<div>{{EmbedInteractiveExample("pages/js/math-clz32.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"><code>Math.clz32(<var>x</var>)</code></pre>
+
+<h3 id="Аргументи">Аргументи</h3>
+
+<dl>
+ <dt><code>x</code></dt>
+ <dd>Число.</dd>
+</dl>
+
+<h3 id="Результат">Результат</h3>
+
+<p>Кількість ведучих нульових бітів 32-бітного двоїчного уявлення даного числа.</p>
+
+<h2 id="Опис">Опис</h2>
+
+<p>"<code>clz32</code>" - це скорочено від <code>CountLeadingZeroes32</code>.</p>
+
+<p>Якщо аргумент <code>x</code> не є числом, він спочатку буде приведений до числового формату, а потім - до 32-бітного беззнакового цілого.</p>
+
+<p>Якщо в результаті 32-бітне беззнакове ціле число є нулем - функція повертає <code>32</code>, тому що всі його біти являються нульовими.</p>
+
+<p>Ця функція, зокрема, дуже помічна для систем, що компілюють щось у JS. Наприклад - <a href="/en-US/docs/Emscripten">Emscripten</a>.</p>
+
+<h2 id="Приклади">Приклади</h2>
+
+<h3 id="Застосування_Math.clz32()">Застосування <code>Math.clz32()</code></h3>
+
+<pre class="brush: js">Math.clz32(1); // 31
+Math.clz32(1000); // 22
+Math.clz32(); // 32
+
+[NaN, Infinity, -Infinity, 0, -0, null, undefined, 'foo', {}, []].filter(
+function(n) {
+ return Math.clz32(n) !== 32
+}); // []
+
+Math.clz32(true); // 31
+Math.clz32(3.5); // 30
+</pre>
+
+<h2 id="Поліфіл">Поліфіл</h2>
+
+<p>Найбільш ефективний поліфіл:</p>
+
+<pre class="brush: js">if (!Math.clz32) {
+ Math.clz32 = function(x) {
+ // Let n be ToUint32(x).
+ // Let p be the number of leading zero bits in
+ // the 32-bit binary representation of n.
+ // Return p.
+ if (x == null || x === 0) {
+ return 32;
+ }
+ return 31 - Math.floor(Math.log(x &gt;&gt;&gt; 0) * Math.LOG2E);
+ };
+}
+</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('ES2015', '#sec-math.clz32', 'Math.clz32')}}</td>
+ <td>{{Spec2('ES2015')}}</td>
+ <td>Первинне визначення.</td>
+ </tr>
+ <tr>
+ <td>{{SpecName('ESDraft', '#sec-math.clz32', 'Math.clz32')}}</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.clz32")}}</p>
+
+<h2 id="Дивіться_також">Дивіться також</h2>
+
+<ul>
+ <li>{{jsxref("Math")}}</li>
+ <li>{{jsxref("Math.imul")}}</li>
+</ul>