Bonjour,

j'effectue une opération logique XOR entre un nombre valant &H01FFFFFF et d'autres nombres:

Pour &H01FFFFFF XOR un nombre inférieur à &H8000, tout va bien.

Pour &H01FFFFFF XOR un nombre supérieur à &H8000, j'obtiens des résultats négatifs.

Je pense que cela est dû à une limitation de capacité de bits.
Même en faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
&H01FFFFFF xor CLng(&H8000)
cela ne fonctionne pas. Pourtantque CLng représente un nombre sur 4 octets.

J'ai même essayé du :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
CDbl(&H01FFFFFF) xor CDbl(&H8000)
ou du :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Cdbl( CDbl(&H01FFFFFF) xor CDbl(&H8000) )
...sans succès

C'est quoi l'astuce ?