Math.clz32()

La fonction Math.clz32() renvoie le nombre de zéros commençant un nombre réprésenté en binaire sur 32 bits .

Syntaxe

Math.clz32(x)

Paramètres

x
Un nombre.

Valeur de retour

Le nombre de zéro qui composent le début du nombre lorsqu'il est écrit dans sa représentation sur 32 bits.

Description

"clz32" est un raccourci pour CountLeadingZeroes32 qui en français signifie « compter les zéros débutant le nombre ». 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 sur 32 bits résultant vaut 0, la fonction renverra 32, car tous les bits valent 0. Cette fonction est notamment utile aux systèmes qui compilent du code JavaScript comme Emscripten.

Exemples

Utiliser Math.clz32()

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

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

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

Prothèse d'émulation (polyfill)

Math.clz32 = Math.clz32 || function(value) {
    var value = Number(value) >>> 0;
    return value ? 32 - value.toString(2).length : 32;
}

Spécifications

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

Compatibilité des navigateurs

Fonctionnalité Chrome Firefox (Gecko) Internet Explorer Opera Safari
Support simple 38 31 (31) Pas de support 25 Pas de support
Fonctionnalité Android Chrome pour Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support simple Pas de support Pas de support 31.0 (31) Pas de support Pas de support Pas de support

Voir aussi

Étiquettes et contributeurs liés au document

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