« Les opérations bit à bit/Manipulations intra-mots » : différence entre les versions

Contenu supprimé Contenu ajouté
→‎Version avec branchements : little endian / big endian
Ligne 39 :
 
Dans ce qui va suivre, chaque octet sera noté de 0 à n-1 pour un mot de n octets, avec 0 l'octet de poids faible et n-1 l'octet de poids fort. L'algorithme que nous allons voir renvoie un nombre qui indique la position du premier octet nul. La valeur renvoyée est égale à n si aucun octet n'est nul dans le mot. Pour les exemples qui vont suivre, nous allons prendre un mot de 64 bits, qui a donc 8 octets numérotés de 0 à 7. Cet algorithme va commencer par calculer un booléen/bit pour chaque octet, qui indique s'il est nul ou non : il vaut 0 s'il est nul et 1 sinon. Il va ensuite combiner ces booléens/bits pour déterminer la valeur de retour.
 
Le code utilisé dans ce chapitre suppose que l'ordre des octets est ''little endian'' où l'octet de poids faible du mot se situe en premier dans la séquence d'octet le représentant en mémoire.
Pour l'ordre ''big endian'', il suffit de changer l'ordre des variables dans le code.
 
La version qui utilise des branchements va masquer chaque mot et tester si celui-ci est nul :