Page 1 sur 1

Constante

Publié : jeu. 14/août/2008 15:59
par Anonyme
y a un truc que j'ai du mal à pigé :

Code : Tout sélectionner

 Enumeration 
 #A
 #B
 #C
 #D
 EndEnumeration
 
  
Option = #A | #B


Debug Option & #A
Debug Option & #B
Debug Option & #C
Debug Option & #D
Comment testé correctement si la constante #A est présente dans options ?

Publié : jeu. 14/août/2008 16:10
par Cls
Hum comme ça plutôt, l'opérateur | fait un test bit à bit :

Code : Tout sélectionner


#A = %0001
#B = %0010
#C = %0100
#D = %1000
  
Option = #A | #B
 
Debug Option & #A
Debug Option & #B
Debug Option & #C
Debug Option & #D

Publié : jeu. 14/août/2008 16:11
par Cls
Ou comme ça

Code : Tout sélectionner

Enumeration 1
 #A
 #B
 #C
 #D
EndEnumeration
 
 
Option = #A | #B


Debug Option & #A
Debug Option & #B
Debug Option & #C
Debug Option & #D
Et dans ce cas, c'est tout à fait normal que #C soit également actif car
A = 1 (0001)
B = 2 (0010)
C = 3 (0011)

Publié : jeu. 14/août/2008 16:15
par Anonyme
Merci , j'chui vraiment une quiche :D

Publié : dim. 17/août/2008 17:30
par kernadec
bonjour
j'ai pas tout compris non plus dans l exemple car #C=%0100
et tu dit que C est egal 0011

Code : Tout sélectionner

#A = %0001 
#B = %0010 
#C = %0100 
#D = %1000 
  
Option = #A | #B 
  
Debug Option & #A 
Debug Option & #B 
Debug Option & #C 
Debug Option & #D 

Publié : lun. 18/août/2008 8:29
par kernadec
merci pour le cours,
j'avais mal evaluer l'effet du ET sur les bits, mais apres une lecture de la doc a ce sujet j'ai compris merci CLS.

AND est un ET logique (binaire). Il vous faut être familiarisé avec les nombres binaires pour utiliser cet opérateur. Le résultat de cet opérateur est le résultat d'un ET logique entre les valeurs des expressions LHS et RHS, bit à bit. La valeur de chaque bit résultant est fixée comme indiqué dans la table ci-dessous. De plus, si le résultat de l'opérateur n'est pas utilisé et qu'il y a une variable LHS, alors le résultat sera directement stocké dans cette variable. Cet opérateur ne peut être utilisé avec une variable de type chaine.

LHS | RHS |Résultat
------------------
0 | 0 | 0
0 | 1 | 0
1 | 0 | 0
1 | 1 | 1
Exemple:
; La représentation binaire des valeurs est utilisée pour une présentation plus claire et lisible
a.w = %1000 & %0101 ; Le résultat sera 0
b.w = %1100 & %1010 ; Le résutlat sera %1000
bits = a & b ; Effectue un ET bit à bit entre a et b et utilise le résultat avec l'opérateur =
a & b ; Effectue un ET bit à bit entre a et b et place le résultat directement dans la variable "a"

Publié : lun. 18/août/2008 14:12
par Ollivier
Salut!

A la base de la logique binaire, il y a l'idée que l'inverse logique de 0, c'est 1. Et vice versa.

Dans une norme complètement informelle en logique binaire mais assez mnémotechnique (pour aider à retenir),

le ET logique est comme une multiplication en Maths : dès qu'il y a un zéro, le résultat c'est 0
le OU logique, comme une addition : dès qu'il y a autre chose que zéro (donc 1), le résultat est autre chose que zéro (encore 1)

Les maths « trahissent » de temps à autres cette analogie officieuse : en stats, par exemple :

Le calcul d'une probabilité est une traduction pure et simple de l'énoncé du problème littéral en opération algébrique:
- Le ET se traduit par une multiplication
- Le OU se traduit par une addition

Ainsi, en marchant dans une rue de Paris, si, à chaque Km parcouru à pied, j'ai 1 chance sur 1000 (P1.F = 1/1000) de recevoir une merde de pigeon, et 1 chance sur 8000 (P2.F = 1/8000) de recevoir une fiente d'hirondelle (les chiffres sont au pif).

Se salir c'est se prendre l'une OU l'autre des merdes
ProbaGeneral.F de se salir = P1 + P2

Etre sidéré c'est se prendre celle du pigeon ET celle de l'hirondelle
ProbaGeneral.F d'être sidéré = P1 * P2


Une fois cette couche de notions saisie,

on peut se mettre à comprendre qu'il existe aussi le OU EXCLUSIF
(Soit une merde de pigeon, soit une merde d'hirondelle)
Debug (A ! B)

et le ET INCLUSIF
(Soit toutes les merdes, soit aucune merde)
Debug ~(A ! B)

Ollivier

Publié : lun. 18/août/2008 15:39
par djes
Ollivier a écrit :Salut!

A la base de la logique binaire, il y a l'idée que l'inverse logique de 0, c'est 1. Et vice versa.

Dans une norme complètement informelle en logique binaire mais assez mnémotechnique (pour aider à retenir),

le ET logique est comme une multiplication en Maths : dès qu'il y a un zéro, le résultat c'est 0
le OU logique, comme une addition : dès qu'il y a autre chose que zéro (donc 1), le résultat est autre chose que zéro (encore 1)

Les maths « trahissent » de temps à autres cette analogie officieuse : en stats, par exemple :

Le calcul d'une probabilité est une traduction pure et simple de l'énoncé du problème littéral en opération algébrique:
- Le ET se traduit par une multiplication
- Le OU se traduit par une addition

Ainsi, en marchant dans une rue de Paris, si, à chaque Km parcouru à pied, j'ai 1 chance sur 1000 (P1.F = 1/1000) de recevoir une merde de pigeon, et 1 chance sur 8000 (P2.F = 1/8000) de recevoir une fiente d'hirondelle (les chiffres sont au pif).

Se salir c'est se prendre l'une OU l'autre des merdes
ProbaGeneral.F de se salir = P1 + P2

Etre sidéré c'est se prendre celle du pigeon ET celle de l'hirondelle
ProbaGeneral.F d'être sidéré = P1 * P2


Une fois cette couche de notions saisie,

on peut se mettre à comprendre qu'il existe aussi le OU EXCLUSIF
(Soit une merde de pigeon, soit une merde d'hirondelle)
Debug (A ! B)

et le ET INCLUSIF
(Soit toutes les merdes, soit aucune merde)
Debug ~(A ! B)

Ollivier
Excellent! :lol: