L'algorithme pour trouver la valeur absolue d'un nombre à virgule flottante sur here. Comment cela fonctionne-t-il?Comment fonctionne cette implémentation de fabs()?
//find absolute value
double x;
*(((int *) &x) + 1) &= 0x7fffffff;
Je ne comprends pas pourquoi le décalage de 1 était nécessaire. Il est dit:
le bit de signe 64 bits IA32 est 0x80000000 à un décalage d'adresse int de +1.
Quelqu'un peut-il démonter et expliquer?
"Quelqu'un peut-il expliquer cela?" - Peut-être pourriez-vous tenter une explication? –
@MitchWheat: Peut-être que vous pourriez être un peu moins critique. La question de l'OP était clairement formulée et expliquait même le point de confusion: l'offset 1. –
@R: J'ai posé une question polie et raisonnable. Quel est ton boeuf? –