
Envoyé par
Dazdh
Pourquoi r2 vaut 9922 ?
l'opérateur ^ signifie bitwise exclusive or ( <=> ou exclusif bit par bit). Si toi tu veux faire a puissance b, c'est ta première solution avec Math.pow() qu'il faut utiliser.
Ou alors, dans le cas bien précis de multiplications/divisions par des puissances de deux, c'est les opérateurs de décalage de bits (bitwise shift operators : << , >> et >>>) qu'il faut utiliser.
long r2 = ((long)a << 24) + ((long)b << 16) + ((long)c << 8) + d;
EDIT: attention à la priorité de l'opérateur <<, les parenthèses étant indispensables.
Partager