--- title: Math.clz32() slug: Web/JavaScript/Reference/Global_Objects/Math/clz32 tags: - ECMAScript6 - Experimental - Expérimental(2) - JavaScript - Math - Method - Reference - Référence(2) translation_of: Web/JavaScript/Reference/Global_Objects/Math/clz32 ---
Метод Math.clz32() возвращает количество ведущих нулевых битов в 32-битном двоичном представлении числа.
Math.clz32(x)
xНазвание clz32 является сокращением для более длинного CountLeadingZeroes32 (ПосчтитатьВедущиеНули32).
Если значение x не является числом, оно будет сначала преобразовано в число, а потом в 32-битное беззнаковое целое число.
Если преобразованое 32-битное беззнаковое целое число равно 0, метод вернёт 32, поскольку все биты в числе равны 0.
Этот метод особено полезен для систем, которые компилируются в 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
Math.clz32 = Math.clz32 || function(value) {
value = Number(value) >>> 0;
return value !== 0 ? 31 - Math.floor(Math.log(value + 0.5) / Math.log(2)) : 32;
};
| Спецификация | Статус | Комментарии |
|---|---|---|
| {{SpecName('ES6', '#sec-math.clz32', 'Math.clz32')}} | {{Spec2('ES6')}} | Изначальное определение. |
| Возможность | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| Базовая поддержка | {{CompatChrome("35")}} | {{CompatGeckoDesktop("31")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
| Возможность | Android | Chrome для Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| Базовая поддержка | {{CompatNo}} | {{CompatNo}} | {{CompatGeckoMobile("31")}} | {{CompatNo}} | {{CompatNo}} | {{CompatNo}} |