MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

La fonction Math.clz32() renvoie le nombre de zéros de tête dans la représentation binaire sur 32 bits d'un nombre.

Syntaxe

Math.clz32(x)

Paramètres

x
Un nombre.

Valeur retournée

Le nombre de bits à zéro en tête de la représentation binaire sur 32 bits du nombre donné.

Description

"clz32" est un raccourci pour CountLeadingZeroes32 (en français, « compter les zéros de tête »).

Si x n'est pas un nombre, il sera d'abord converti en nombre puis converti en un entier non signé sur 32 bits.

Si l'entier non signé sur 32 bits résultant vaut 0, la fonction renverra 32, car tous les bits valent 0.

Cette fonction est particulièrement utile aux systèmes qui compilent du code JavaScript, comme Emscripten.

Exemples

Utilisation de Math.clz32()

Math.clz32(1)                // 31
Math.clz32(1000)             // 22 
Math.clz32()                 // 32

[NaN, Infinity, -Infinity, 0, -0, null, undefined, 'machin', {}, []].filter(
function (n) {
  return Math.clz32(n) !== 32
})                           // []

Math.clz32(true)             // 31
Math.clz32(3.5)              // 30

Émulation

L'émulation suivante est la plus efficace.

if (!Math.clz32) {
  Math.clz32 = function(x) {
    // Soit n égal à ToUint32(x).
    // Soit p le nombre de bits à zéro en tête 
    // de la représentation binaire sur 32 bits de n.
    // Retourner p.    
    if (x == null || x === 0) {
      return 32;
    }
    return 31 - Math.floor(Math.log(x >>> 0) * Math.LOG2E);
  };
}

Spécifications

Spécification Statut Commentaire
ECMAScript 2015 (6th Edition, ECMA-262)
La définition de 'Math.clz32' dans cette spécification.
Standard Définition initiale.
ECMAScript Latest Draft (ECMA-262)
La définition de 'Math.clz32' dans cette spécification.
Projet  

Compatibilité des navigateurs

FonctionnalitéChromeFirefoxEdgeInternet ExplorerOperaSafari
Support simple3831(Oui)(Non)25(Oui)
FonctionnalitéAndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
Support simple(Oui)(Oui)(Oui)31(Non)(Oui)(Oui)

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : SphinxKnight, NemoNobobyPersonne, teoli
 Dernière mise à jour par : SphinxKnight,