Переклад не закінчено. Будь ласка, допоможіть перекласти цю статтю з англійської.

Функція Math.clz32() повертає кількість ведучих нульових бітів 32-бітного двоїчного уявлення даного числа.

Синтаксис

Math.clz32(x)

Аргументи

x
Число.

Результат

Кількість ведучих нульових бітів 32-бітного двоїчного уявлення даного числа.

Опис

"clz32" - це скорочено від CountLeadingZeroes32.

Якщо аргумент x не є числом, він спочатку буде приведений до числового формату, а потім - до 32-бітного беззнакового цілого.

Якщо в результаті 32-бітне беззнакове ціле число є нулем - функція повертає 32, тому що всі його біти являються нульовими.

Ця функція, зокрема, дуже помічна для систем, що компілюють щось у JS. Наприклад - Emscripten.

Приклади

Застосування Math.clz32()

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

Поліфіл

Найбільш ефективний поліфіл:

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 >>> 0) * Math.LOG2E);
  };
}

Специфікації

Специфікація Статус документу Примітка
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.clz32' in that specification.
Standard Первинне визначення.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Math.clz32' in that specification.
Draft  

Сумісність із браузерами

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support38 Yes31 No25 Yes
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support Yes Yes Yes31 Yes Yes Yes

Дивіться також

Мітки документа й учасники

Зробили внесок у цю сторінку: AdriandeCita
Востаннє оновлена: AdriandeCita,