« Les opérations bit à bit/Le branch-free code » : différence entre les versions

Contenu supprimé Contenu ajouté
 
Ligne 146 :
 
<syntaxhighlight lang="c">
bool fcondition_result; // Résultat de la condition
unsigned int mmask ; // Le masque
unsigned int wword ; // Nombre à maquer
 
if (fcondition_result)
{
wword |= mmask ; // mettre à 1 les bits voulus
}
else
{
wword &= ~mmask ; // mettre à 0 les bits voulus
}
</syntaxhighlight>
Ligne 163 :
 
<syntaxhighlight lang="c">
bool fcondition_result ; // Résultat de la condition
unsigned int mmask ; // Le masque
unsigned int wword; // Nombre à maquer
 
wword ^= ( -f condition_result ^ wword) & mmask ;
</syntaxhighlight>
 
Ligne 177 :
unsigned int w; // Nombre à maquer
 
wword = (wword & ~mmask) | ( -f condition_result & mmask );
</syntaxhighlight>