Comprendre une ligne

tof72 Messages postés 33 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 18 juillet 2005 - 13 oct. 2004 à 12:19
tof72 Messages postés 33 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 18 juillet 2005 - 13 oct. 2004 à 17:29
bonjour

je ne comprent pas le and dans la ligne de code suivante pouvez vous m'aider.

lconvert =variable
lcount = variable

If lConvert And (2 ^ lCount) Then

Merci

8 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
13 oct. 2004 à 12:38
Lorsque tu as un If Variable Then, cela correspond à :

If Variable = True Then

Maintenant, si tu as If Variable and Variable2 Then, ca veut dire :
If Variable True And Variable2 True then

Il faut absolument que Variable et Variable2 soit true pour que la clause if soit remplie.

_______________________________________

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 oct. 2004 à 14:27
-> Darksidious
salut,

en fait moi non plus je comprend pas la ligne, car la condition (2^lCount) est Toujours vrai Non?
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
tof72 Messages postés 33 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 18 juillet 2005
13 oct. 2004 à 14:28
le code permet de mettre un nombre décimal en binaire.

je ne comprend toujours pas comment sa marche merci pour vos réponse.

voici le code

iMaxpower = 8
sBinary = ""
lConvert = Val(text1)If lConvert < 0 Then sBinary sBinary + "1" Else sBinary sBinary + "0"
For lCount = iMaxpower To 0 Step -1
If lConvert And (2 ^ lCount) Then
sBinary = sBinary + "1"
Else
sBinary = sBinary + "0"
End If
Next
Text6 = Mid$(sBinary, 3, 8)
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
13 oct. 2004 à 15:47
pour un nombre décimal, valeur zéro renvoie False, tout autre valeur renvoie True

donc
If lConvert
correspond à
If lConvert <> 0
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 oct. 2004 à 16:15
re,

ok pour le zero renvoie False, mais vu que 2^0 = 1 la condition (2^lCOunt) est toujours Vrai, donc n a rien a faire dans le IF (enfin je pense).

@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_rene38 Messages postés 1858 Date d'inscription samedi 29 juin 2002 Statut Membre Dernière intervention 17 octobre 2013 11
13 oct. 2004 à 16:34
Bonjour
Dans le cas présent, le And effectue un test au niveau du bit :
lConvert And (2 ^ lCount) renvoie le nombre obtenu en faisant un "And" sur chacun des bits des 2 nombres écrits en binaire sachant que
0 And 0 = 0
0 And 1 = 0
1 And 0 = 0
1 And 1 = 1

Exemples :
++++++++++++
3 And 4 renvoie 0
00000011 < 3
00000100 < 4
-------------
00000000 < résultat : 0
++++++++++++
5 And 4 renvoie 4
00000101 < 5
00000100 < 4
-------------
00000100 < Résultat : 4
++++++++++++
3 And 6 renvoie 2
00000011 < 3
00000110 < 6
-------------
00000010 < Résultat : 2

Dans ton cas, 2^lCount étant une puissance de 2, son écriture binaire ne comporte qu'un 1 et 7 zéros.2^0 1 00000001 ; 2^1 = 2 = 000000102^2 4 00000100 ; 2^3 = 8 = 000010002^4 16 00010000 ; 2^5 = 32 = 001000002^6 64 01000000 ; 2^7 = 128 = 10000000
Le And recherche donc si le bit correspondant de lConvert est à 0 ou à 1 et ajoute ce résultat dans la chaîne représentant lConvert en binaire.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
13 oct. 2004 à 16:45
rene38,

Merci beaucoup, tres claire ton explication
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
tof72 Messages postés 33 Date d'inscription mardi 8 juin 2004 Statut Membre Dernière intervention 18 juillet 2005
13 oct. 2004 à 17:29
merci pour toute les explication j'ai tout compris
:big) 8-)
0
Rejoignez-nous