Constante

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Anonyme

Constante

Message 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 ?
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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
Cls
Messages : 620
Inscription : mer. 22/juin/2005 8:51
Localisation : Nantes

Message 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)
Anonyme

Message par Anonyme »

Merci , j'chui vraiment une quiche :D
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message 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 
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Message 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"
Ollivier
Messages : 4197
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Message 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
Avatar de l’utilisateur
djes
Messages : 4252
Inscription : ven. 11/févr./2005 17:34
Localisation : Arras, France

Message 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:
Répondre