Hmmm... Ton mask, il est stocké dans quoi ?
C'est une chaîne de caractères ?
C'est un number dans lequel tu met 10 pour faire 2 ?
A ce moment, change.
Passe à un number normal, et pour écrire 10, écrit bêtement 2.
En effet, le binaire marche très bien, à condition de rester en vrai binaire, c'est à dire que tu dois stocker tes nombres en tant que nombre, faut pas chercher à ce que ce soit joli à regarder.
Ici, une ligne (syntaxe Oracle) pour tester un bit dans un nombre :
AND mod(trunc(le_masque/power(2,position_du_bit), 0), 2) = 1 |
Si le bit en question est à 1, alors ça retournera true, sinon false.
Sinon, pour faire des AND et OR ou NOT booléens, alors voici la syntaxe SQL Server :
http://msdn.microsoft.com/library/ [...] r_7fax.asp (pour le AND)
Ca donne :
AND ((champ1 & champ2) | !champ3)
Par exemple. Ca fait le résultat de l'oppération :
(champ1 AND champ2) OR NOT champ3