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é.
Marsh Posté le 05-03-2003 à 12:46:14
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 :
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