Page 1 sur 1

L'oppérateur &

Publié : ven. 31/oct./2014 14:40
par Lord Nelson
Salut,

b.w = %1100 & %1010, Le résutlat sera %1000
J'ai piger le principe mais est-il possible de faire l’opération inverse (J'en doute fort !) ?

En gros ici (C'est mon interprétation), ont fusionne les deux valeur.
Mais pour faire l'inverse ont peut pas si ?! :?

Comment retrouver 1100 Puis 1010 dans 1000 ?

Re: L'oppérateur &

Publié : ven. 31/oct./2014 14:44
par falsam
:!: :?:

Re: L'oppérateur &

Publié : ven. 31/oct./2014 15:08
par Micoute
Bonjour Lord Nelson,

je vois que tu as des lacunes avec les tables de vérité.

L'opérateur & fait une comparaison binaire de bits entre une valeur ET une autre valeur.

Regarde dans le fichier d'aide de PB : Thèmes généraux ==> Variables, Types et Opérateurs

Re: L'oppérateur &

Publié : ven. 31/oct./2014 15:09
par Lord Nelson
Je le sais déjà, c'est bien pour ça que je poste ça :)

Re: L'oppérateur &

Publié : ven. 31/oct./2014 15:37
par G-Rom
Lord Nelson a écrit :Je le sais déjà, c'est bien pour ça que je poste ça :)
C'est que tu n'as pas compris.
Tu cherches a faire du "bit shifting" , c'est simple :

Code : Tout sélectionner

Macro quote
  "
EndMacro

Macro Check(val)
  If MaValeur & #val : Debug "#"+quote#val#quote : EndIf 
EndMacro


#_A=1
#_B=2
#_C=4
#_D=8
#_E=16
#_F=32


MaValeur.l = #_A | #_B | #_F

Debug "MaValeur possède : "
Check(_A)
Check(_B)
Check(_C)
Check(_D)
Check(_E)
Check(_F)

Re: L'oppérateur &

Publié : ven. 31/oct./2014 16:02
par Lord Nelson
Oui j'ai pas compris :oops:

Ton code est bien et j’arrive pas à le déchiffrer :(
Je connais pas trop les macro, c'est puissant ça :)

Merci :)

Mais je sais pas si ça réponde à ma question :oops:
Ton truc ça marche pour une puissance de 2 *2:

1
2
4
8
16
32
64
128
256

Mais pas autres, par exemple de 0 à 255, si ?

Re: L'oppérateur &

Publié : ven. 31/oct./2014 18:25
par TazNormand
& signifie que l'on fait un ET logique, en clair il faut que les 2 valeurs soient vraies, si aucune ou une seule est vraie, alors le résultat est FAUX. Par vrai on entend en binaire égale à 1 :

1 & 1 vaut 1 = VRAI ==> les 2 conditions sont remplies
1 & 0 vaut 0 = FAUX ==> une seule des 2 conditions n'est remplie
0 & 0 vaut 0 = FAUX ==> aucune des 2 conditions n'est remplie

%1100 & %1010 = %1000 car (1&1=1; 1&0=0; 0&1=0; 0&0=0 ==> %1000)

Sincèrement, tu as de grosses lacunes en dév. de base, donc penche-toi d'abord sur les bases.

Re: L'oppérateur &

Publié : ven. 31/oct./2014 20:48
par Lord Nelson
Ok merci bien :)

Re: L'oppérateur &

Publié : sam. 01/nov./2014 10:44
par G-Rom

Code : Tout sélectionner

#A = %0001
#B = %0010
#C = %0100
#D = %1000

#ALL = #A | #B | #C | #D
#A_D = #A | #D

Debug "#ALL = %" + Bin(#ALL)
Debug "#A_D = %" + Bin(#A_D)


If Not #A_D & #C
  Debug "#A_D n'a pas de #C"
EndIf