Différences entre les versions de « Les opérations bit à bit/Le branch-free code »

m
 
 
<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>
 
<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>
 
unsigned int w; // Nombre à maquer
 
wword = (wword & ~mmask) | ( -f condition_result & mmask );
</syntaxhighlight>
 
38 132

modifications