« Les opérations bit à bit/Manipulations sur les bits de poids faible/fort » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Count Leading Zeros : = nombre de zéros à gauche donc avant en écriture de gauche à droite.
→‎Count Leading Zeros : Définir clz + confusion entre n et N
Ligne 733 :
===''Count Leading Zeros''===
 
L'instruction '''Count leading zeros''' (clz) a pour objectif de compter les zéros situés avant le premier 1 de poids le plus fort. Ce nombre de ''leading zéros'' peut varier entre 0 et N (où N est le nombre total de bits représentant le nombre entier). S'il vaut zéro, le bit de plus à gauche est un 1. S'il vaut N, c'est que tous les bits du nombre sont à zéro. En matériel, cette opération est souvent utilisée dans certaines unités de calcul à virgule flottante, dans les opérations de normalisation et d'arrondis du résultat. Néanmoins, il faut préciser que seules les unités de calcul à faible performance ont besoin de déterminer le nombre de zéros les plus à gauche.
 
On peut calculer ce nombre de zéros à gauche (clz) simplement à partir de l'indice du 1 de poids fort, en utilisant l'équation :
 
: <math>fhs(n) + clz(n) = nN - 1</math>
 
Il existe deux autres méthodes qui commencent toutes deux par mettre à 1 tous les bits situés à droite du 1 de poids fort. Une fois cela fait, il y a deux possibilités.
 
La première est d'effectuer un calcul de population count et de soustraire le résultat de <math>nN</math>.
 
<syntaxhighlight lang="c">