Je mets ici toutes les possibilités d'opérations sur les portes logiques.
Pour de plus amples informations, je conseillerais tout simplement de suivre les explications données sur Wikipédia.
http://fr.wikipedia.org/wiki/Porte_logique
Dans le code suivant, on créé des macros pour représenter toutes les opérations logiques.
En effet, PureBasic intègre nombre d'entres elles mais pas toutes.
Supporté nativement par PureBasic 4.x :
Code : Tout sélectionner
NOT
OR
XOR
AND
Non-supportée nativement par PureBasic 4.x :
Ces dernières ne sont ni plus ni moins qu'une version avec un NOT.
Code : Tout sélectionner
NOR
XNOR
NAND
Source :
Code : Tout sélectionner
;-
;- MACROS PORTES LOGIQUES
;- http://fr.wikipedia.org/wiki/Porte_logique
;-
Macro logic_not(A)
(Not (A))
EndMacro
Macro logic_or(A, B)
((A) Or (B))
EndMacro
Macro logic_xor(A, B)
((A) Xor (B))
EndMacro
Macro logic_nor(A, B)
(logic_not(logic_or(A, B)))
EndMacro
Macro logic_xnor(A, B)
(logic_not(logic_xor(A, B)))
EndMacro
Macro logic_and(A, B)
((A) And (B))
EndMacro
Macro logic_nand(A, B)
(logic_not(logic_and(A, B)))
EndMacro
Debug "OU"
Debug logic_or(0, 0) ; 0 | 0 | 0
Debug logic_or(0, 1) ; 0 | 1 | 1
Debug logic_or(1, 0) ; 1 | 0 | 1
Debug logic_or(1, 1) ; 1 | 1 | 1
Debug "OU EXCLUSIF"
Debug logic_xor(0, 0) ; 0 | 0 | 0
Debug logic_xor(0, 1) ; 0 | 1 | 1
Debug logic_xor(1, 0) ; 1 | 0 | 1
Debug logic_xor(1, 1) ; 1 | 1 | 0
Debug "NON-OU"
Debug logic_nor(0, 0) ; 0 | 0 | 1
Debug logic_nor(0, 1) ; 0 | 1 | 0
Debug logic_nor(1, 0) ; 1 | 0 | 0
Debug logic_nor(1, 1) ; 1 | 1 | 0
Debug "NON-OU EXCLUSIF"
Debug logic_xnor(0, 0) ; 0 | 0 | 1
Debug logic_xnor(0, 1) ; 0 | 1 | 0
Debug logic_xnor(1, 0) ; 1 | 0 | 0
Debug logic_xnor(1, 1) ; 1 | 1 | 1
Debug "ET"
Debug logic_and(0, 0) ; 0 | 0 | 0
Debug logic_and(0, 1) ; 0 | 1 | 0
Debug logic_and(1, 0) ; 1 | 0 | 0
Debug logic_and(1, 1) ; 1 | 1 | 1
Debug "NON-ET"
Debug logic_nand(0, 0) ; 0 | 0 | 1
Debug logic_nand(0, 1) ; 0 | 1 | 1
Debug logic_nand(1, 0) ; 1 | 0 | 1
Debug logic_nand(1, 1) ; 1 | 1 | 0