Math.clz32()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. Itâs been available across browsers since иÑÐ»Ñ 2015 г..
Сводка
ÐеÑод 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;
};
СпеÑиÑикаÑии
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-math.clz32> |