Salut à tous,
J'ai fait une macro en VBA sous Excel hyper simple :
Le but est de savoir, pour un registre de 32 bits, quel bit est à 1.
Dans une cellule excel, je mets :
=mask( 12354, 7)
Et ca me retourne TRUE si le bit 7(8eme bit) de 12354 est à 1.
La macro est la suivante :
Code :
- Function mask(valeur, masque) As Boolean
- mask = valeur And masque
- End Function
|
Le problème est qu'il y a un overflow avec le bit 31 (32eme bit).
Dans ce cas, l'appel est le suivant :
=mask (12354, 2147483648)
Et là, il y a un overflow à cause de 2147483648 (2^31) vu que Excel s'attend à avoir un nombre signé et moi je veux lui donner un nombre non signé.
Quelqu'un voit une solution?
Merci,
vw