cs_6Po
Messages postés105Date d'inscriptionjeudi 16 mai 2002StatutMembreDernière intervention22 janvier 2009
-
24 sept. 2003 à 17:53
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007
-
4 août 2004 à 17:30
Bonjour,
J'aimerais effectué une comparaison binaire.
6 = 110
2 = 010
Donc normal 6 & 2 devrait faire 010 (soit 2)...
si j'effectue le test suivant if(6 & 2 == 2) ca retourne faux ?
par contre si je fais if(5 & 2 = 2) la ca retourne vrai?
Est-ce que les nombres par defaut serait en format text et non numérique ?
TRASH52
Messages postés44Date d'inscriptionmardi 14 janvier 2003StatutMembreDernière intervention 3 décembre 20041 24 sept. 2003 à 18:57
TRASH52 :big) :big)
http://raptorx.free.fr je sais pas trop pour ta question sur le binaire mais if(5 & 2 2) fonctionne car y'a un , met en 2 == et ca renverra peut-etre faux aussi!
Exemple Nom Résultat
$a & $b ET (AND) Les bits positionnés à 1 dans $a ET dans $b sont positionnés à 1.
$a | $b OU (OR) Les bits positionnés à 1 dans $a OU $b sont sont positionnés à 1.
$a ^ $b Xor Les bits positionnés à 1 dans $a OU dans $b sont positionnés à 1.
~ $a NON (Not) Les bits qui sont positionnés à 1 dans $a sont positionnés à 0, et vice versa.
$a << $b Décalage à gauche Décale les bits de $a $b fois sur la gauche (chaque décalage équivaut à une multiplication par 2).
$a >> $b Décalage à droite Décalage des bits de $a $b fois par la droite (chaque décalage équivaut à une division par 2).
Ce que je voudrais c'est de dire que 6 & 2 bhen que c'est egal a 2 :)
if($a & $b == 2) fonctionne pas...
donc si vous voulez utilise une comparaise de bit et non logique utiliser & | ou ~ par contre evitez les IFs il semble qu'il y a un petit blem.... j'ai essayer avec et et = mais change rien, merci a tous ceux qui aurrait essayé de trouve une idée.
cs_Arkko
Messages postés192Date d'inscriptionmercredi 26 décembre 2001StatutMembreDernière intervention31 janvier 2007 4 août 2004 à 17:30
c'est simple ... php gere tes nombres comme des chaines donc tu dois les convertir en entier avec (int) ou (integer)
ex:
((int)$a & (int)$b) == 2
ca devrait marcher