Get to know MDN better
Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis juillet 2015.
La méthode statique Math.clz32() retourne le nombre de bits à zéro en tête de la représentation binaire sur 32 bits d'un nombre.
Un nombre.
Le nombre de bits à zéro en tête de la représentation binaire sur 32 bits de x.
clz32 est un raccourci pour CountLeadingZeros32.
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 retourne 32, car tous les bits valent 0. Si le bit le plus significatif est 1 (c'est-à-dire que le nombre est supérieur ou égal à 231), 0 est renvoyé.
Cette fonction est particulièrement utile aux systèmes qui compilent du code JavaScript, comme Emscripten (angl.).
Actuellement, il n'existe pas de Math.clon pour « Count Leading Ones » (nommé « clon », et non « clo », car « clo » et « clz » sont trop similaires, surtout pour les personnes non anglophones). Cependant, une fonction clon peut facilement être créée en inversant les bits d'un nombre et en passant le résultat à Math.clz32. Cela fonctionne car l'inverse de 1 est 0 et inversement. Ainsi, inverser les bits inverse la quantité mesurée de 0 (par Math.clz32), ce qui permet à Math.clz32 de compter le nombre de uns au lieu de compter le nombre de zéros.
Considérez le mot de 32 bits suivant :
En utilisant cette logique, une fonction clon peut être créée comme suit :
De plus, cette technique peut être étendue pour créer une fonction « Count Trailing Zeros » sans saut, comme illustré ci-dessous. La fonction ctrz effectue un ET binaire entre l'entier et son complément à deux. Avec le fonctionnement du complément à deux, tous les zéros de fin seront convertis en uns, puis lors de l'ajout de 1, la retenue se propage jusqu'au premier 0 (qui était initialement un 1). Tous les bits plus élevés restent identiques et sont les inverses des bits de l'entier original. Ainsi, lors de l'opération ET binaire avec l'entier original, tous les bits plus élevés deviennent 0, ce qui peut être compté avec clz. Le nombre de zéros de fin, plus le premier bit à 1, plus les bits de tête comptés par clz, donnent un total de 32.
Ensuite, nous pouvons définir une fonction « Count Trailing Ones » comme suit :
Ces fonctions utilitaires peuvent être transformées en un module asm.js pour une amélioration potentielle des performances.
| ECMAScript® 2027 Language Specification # sec-math.clz32 |
Activez JavaScript pour afficher ce tableau de compatibilité des navigateurs.
Cette page a été modifiée le 4 mars 2026 par les contributeur·ice·s du MDN.
Votre modèle pour un internet meilleur.
Visitez la société mère à but non lucratif de Mozilla Corporation, la Fondation Mozilla.
Certaines parties de ce contenu sont protégées par le droit d'auteur ©1998—2026 des contributeurs individuels de mozilla.org. Contenu disponible sous une licence Creative Commons.