This translation is incomplete. Please help translate this article from English.

La funció Math.clz32() retorna el nombre de zeros a l'esquerra que apareixen en una representació binària de 32 bits per a un nombre.

Sintaxi

Math.clz32(x)

Paràmetres

x
Un nombre.

Descripció

"clz32" és una abreviació de CountLeadingZeroes32.

Si x no és un nombre, primer es convertirà a un nombre, i després es convertirà a un nombre sencer de 32 bits sense signe.

Si el nombre sencer sense signe de 32 bits és 0, la funció retornarà 32 ja que tots els bits són 0.

Aquesta funció és particulament útil per a sistemes que compilin en JavaScript, com ara Emscripten.

Exemples

Utilitzar 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

Polyfill

Aquesta funció polyfill utilitza Math.imul.

Math.clz32 = Math.clz32 || (function () {
  'use strict';

  var table = [
    32, 31,  0, 16,  0, 30,  3,  0, 15,  0,  0,  0, 29, 10,  2,  0,
     0,  0, 12, 14, 21,  0, 19,  0,  0, 28,  0, 25,  0,  9,  1,  0,
    17,  0,  4,   ,  0,  0, 11,  0, 13, 22, 20,  0, 26,  0,  0, 18,
     5,  0,  0, 23,  0, 27,  0,  6,  0, 24,  7,  0,  8,  0,  0,  0]

  // Adaptat d'un algorisme trobat a Hacker's Delight, pàgina 103.
  return function (x) {
    // Tingueu en compte que les variables no tenen perquè ser les mateixes.

    // 1. On n = ToUint32(x).
    var v = Number(x) >>> 0

    // 2. On p és el nombre de zeros a l'esquerra en la representació binària de 32 bits de n.
    v |= v >>> 1
    v |= v >>> 2
    v |= v >>> 4
    v |= v >>> 8
    v |= v >>> 16
    v = table[Math.imul(v, 0x06EB14F9) >>> 26]

    // Retorna p.
    return v
  }
})();

Especificacions

Especificació Estat Comentaris
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Math.clz32' in that specification.
Standard Definició inicial.

Compatibilitat amb navegadors

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

Característica Chrome Firefox (Gecko) Internet Explorer Opera Safari
Suport bàsic 38 31 (31) No support 25 No support
Característica Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Suport bàsic No support No support 31.0 (31) No support No support No support

Vegeu també

Document Tags and Contributors

Contributors to this page: SphinxKnight, enTropy
Last updated by: SphinxKnight,