begin process at 2012 02 12 11:36:57
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Divers

 > DIFFÉRENCE ENTRE + (ARITHMÉTIQUE) ET OR (BITWISE)

DIFFÉRENCE ENTRE + (ARITHMÉTIQUE) ET OR (BITWISE)


 Information sur la source

Note :
Aucune note
Catégorie :Divers Classé sous :operateurs, logique, bitwise, booléen Niveau :Débutant Date de création :15/08/2006 Vu / téléchargé :3 118 / 165

Auteur : jean_marc_n2

Ecrire un message privé
Site perso
Commentaire sur cette source (12)
Ajouter un commentaire et/ou une note

 Description

Ce minuscule programme illustre simplement la différence entre un + et un OR, suite à une discussion sur une des sources.
Le but est simplement de montrer les différences entre l'addition et le OR logique, sur 2 valeurs entre 0 et 255, avec représentation en binaire.
NB: Le code n'est pas commenté ni particulièrement soigné.



 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture ACTUALITÉS EN TEMPS RÉEL GRÂCE AUX FLUX RSS
COMPACTAGE D'UNE SÉRIE NUMÉRIQUE
Source avec Zip Source avec une capture GÉNÉRATION EN HTML DE SOURCES VB, AVEC COLORATION SYNTAXIQUE...
Source avec Zip Source avec une capture ESPIONNER / SURVEILLER L'ACTIVITÉ RÉSEAU SUR VOTRE MACHINE O...
Source avec Zip Source avec une capture JOUER AU LITERATI, TEXTEXPRESS, LE MOT LE PLUS LONG, ETC!

 Sources de la même categorie

Source avec Zip TEXTBOX EN NUMÉRIQUE par 320C
Source avec Zip DÉCIMAL TO HEXDECIMAL par loulou27200
SOUS-TITRES : INCRÉMENTATION DE TOUTES LES CHAÎNES DE CARACT... par ALMIRA
Source avec Zip Source avec une capture EVALUER UN NOMBRE D'OBJETS AVEC UNE BALANCE ET DEUX ÉCHANTIL... par lexsty
Source avec Zip Source avec une capture PETIT LOGICIEL DE DEVIS SANS BD par lololilizozo

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source .NET (Dotnet) RÉSOLUTION DU MASTERMIND par alpha5
Source avec une capture Source .NET (Dotnet) PROFIL BINAIRE D'UN OBJET par tchconst
Source avec Zip Source avec une capture JEUX & STRATÉGIES - LOGIDINGO - LOGIQUE BOOLÉENNE par OB0ne
Source avec Zip Source .NET (Dotnet) MINIMISATION DE FONCTIONS BOOLÉENNES par ChristophePel

Commentaires et avis

Commentaire de BruNews le 15/08/2006 11:33:35 administrateur CS

Ne le prends pas mal mais 'or' et '+' n'ayant aucun rapport, je ne vois pas trop l'intérêt de cette source.
Sur ce modèle tu pourrais en faire des milliers, il suffit d'indiquer aux gens d'aller étudier l'algèbre de Boole.

Commentaire de Alain Proviste le 15/08/2006 12:23:09 administrateur CS

étant donné qu'il y a un cas où or et + ont le même "résultat", certaines personnes peuvent confondre, mais bon sinon comme tu dis, interet 0/20, faut que les gens essaient de comprendre certaines choses par eux mêmes...

Commentaire de Renfield le 15/08/2006 14:37:26 administrateur CS

Aucun rapport entre '+' et 'Or', c'est vrai, et c'est bien là que le bât blesse...

Beaucoup utilisent en effet '+' a tord et a travers, pour concaténer des String, ou combiner des Flags.

Commentaire de Cacophrene le 15/08/2006 19:45:01

Salut !

Dès que a et b sont des puissances de 2 distinctes, on a a Or b = a + b. Si a = b alors ce n'est déjà plus toujours vrai (ex. a = b = 4). Si a et b ne sont pas des puissances de 2 (et sont tous deux non nuls), c'est toujours faux.

Malheureusement le seul cas où c'est toujours vrai... ben c'est celui dans lequel on se trouve lorsqu'on manipule les constantes des MsgBox, des attributs de fichiers, etc... :-(

Sauf erreur c'est seulement avec les APIs, quand on sort de ce cadre, que les problèmes font surface (et généralement on a déjà pris des habitudes à ce moment-là).

Conclusion bébête du jour : VB est trop permissif.

Cordialement,
Cacophrène

Commentaire de jean_marc_n2 le 15/08/2006 22:03:38

brunews: je le sais, bien évidemment! Il se trouve comme le signale justement renfield que tous ne le savent pas, par exemple ceux qui "additionnent" les flags avec un "+" au lieu d'un OR; Quand à faire étudier l'algèbre de Boole, je pense que si on faisait un sondage sur ce forum en demandant à tous 1) ce qu'est l'algèbre de Boole, 2) de faire les tables de vérité de OR, AND et XOR, on serait assez surpris, amha...

Alain: exact, aucun intérêt si ce n'est de fournir une vue didactique de la chose via la représentation binaire.

Cacophrène: Oui VB est sans doute trop permissif, ce qui n'est pas une raison pour en profiter :-)

Merci à tous pour vos commentaires :-)

Commentaire de asimengo le 17/08/2006 09:52:20

Ce qu'on devrait comprendre ici est qu'il est préférable d'utiliser le "OR" pour les combinaisons des valeurs d'énumérations par exemple plutôt que le "+".

L'utilisation du "+" est délicate sauf pour des utilisateurs avertis (connaissance élémentaire sur les bases en arithmétique) et n'a pour seul intérêt qu'une lecture aisé du code.

Commentaire de jean_marc_n2 le 17/08/2006 21:22:38

Hello,
merci pour ton commentaire mais je pense alors que j'ai mal expliqué le but de cette source :-((

Le but était de faire comprendre qu'il ne faut **JAMAIS** utiliser le signe "+" pour effectuer une opération binaire, car le "+" ne fait **PAS** une opération bit à bit. L'idée était de montrer qu'il faut **TOUJOURS** utiliser le OR, tout simplement parce qu'il est fait pour ça, contrairement au "+" qui n'est QUE une addition arithmétique.

Le fait que le résultat d'un OR et d'un "+" entre 2 valeurs soit parfois identique n'est qu'anecdotique! Il n'y a *aucune* raison (bonne ou mauvaise) pour utiliser le signe "+" pour faire des opérations bit à bit, ça ne marche tout simplement PAS. Le fait que 2 OR 4 soit "égal" à 2 + 6 n'est qu'un accident, ces 2 nombres ayant des représentations en binaire ou les "1" ne se "supperposent" pas, mais c'est tout...

Sniff, je croyais que le but d'avoir mis cette source ici était limpide...

Commentaire de jean_marc_n2 le 17/08/2006 21:23:43

je voulais dire 2+4, pas 2+6 bien sur.

Commentaire de Alain Proviste le 18/08/2006 01:10:11 administrateur CS

ton exemple tu sommes 2 puissances de 2, c'est le seul cas

Commentaire de asimengo le 18/08/2006 09:26:02

Ecoute Jean_Marc_N2 c'est pas sorcier, l'intérêt que j'ai trouvé à ta source était de relever la nuance ce qui aidera surement nombreux mais y'a beaucoup a qui tu n'apprends rien sur l'utilisation ou pas du "+".

Le terme "accident" que tu utilises est très mal placé et même déroutant il s'agit d'une simple logique mathématique facilement démontrable, c'est pas la peine d'en faire un grand discours.

Bonne Prog

Commentaire de Kelpan le 21/08/2006 01:53:22

Si je peux me permettre, une manière plus simple de démontrer le problème du '+'

Public Enum Test
    var1 = 1
    var2 = 2
    var4 = 4
    var1et2 = var1 Or var2
End Enum

Sub Test()
    Debug.Print (var1 Or var1et2) ' = 3 => var1 et var2 => Correct
    Debug.Print (var1 + var1et2) ' = 4 => var4 => Incorrect
End Sub

Commentaire de clubpsr le 21/08/2006 10:20:30

Il est aussi intéressant de constater que :

- Le "et" en littérature est en fait un "ou" en logique,
Fromage et dessert (les deux)

- Et que le "ou" en littérature est en fait un "ou exclusif" en logique !!!
Fromage ou dessert (mais pas les deux)

C'est pour ça que certain croit que la logique c'est compliquée, en fait c'est le français qui n'est pas logique :-) (C.F. L'exeption confirme la rêgle)

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

**** ENVOYER GRATUITEMENT DES SMS VERS TOUS LES OPERATEURS FRANCAIS **** [ par omnikod ] Avec SMS Sender, vous pouvez envoyer des SMS vers tous les mobiles français gratuitement. Parmi les options de SMS Sender, il est possible d'envoyer d booléen=false ->ligne en gras ... [ par thrakkazz2000 ] bonjour, je cherche un moyen d'afficher sous forme de tableau des données. Ces données ne sont pas des données obtenues par une requète sql (en fait c Logique base de données [ Défis POUR PRO DE LA LOGIQUE ] [ par Symcod ] Bonjours à tous, cas spécial j'ai jamais vu cela mais faut que je le réalise Situation: Table : T_CLIENT Equation logique [ par obacqueville ] Salut je suis a la recherche d'une fonction qui resoud les equations logiques sous un environnement VBA.merci olivier.bacqueville@caramail.com valeur par défaut d'un booléen [ par myrzhin21 ] alor pour expliquer mon problèmec'est que je veux qu'il existe deux valeurs par défaut possibl selon les caspour un champs o_Validation qui est un boo [sql] format d'un booléen [ par math85 ] bonjour, j'ai une requete du style Code: SELECT a.toto=0 as val from [table a]a et il m'affiche bien les infos mais sous forme d'entiers (des 0 et de Quelle logique adopteriez vous ? [ par bibilafrayeur ] Bonjour à tous.Je post ici afin de savoir comment vous feriez à ma place, ceci afin d'avoir des idées différentes des miennes. Il n'est pas question i Requete SQL et booléen [ par tapas64 ] Bonjour.Eh oui j'ai encore un petit pb de requête:Set rs9 = db.OpenRecordset("SELECT [DateO], [SituationCliniqueO], [ReevaluationEtatCliniqueO], [Cont formater un lecteur logique sous xp [ par douns96 ] je vouddrai connaitre le code pour formater un DD avec une part. logique sous xp pro meme la com. format.com ne fonctionne pas.merci et bonne continua Opérateur logique [ par dorian53 ] BonjourEst ce qu'il existe une différence sur la longueur d'évaluation entre &, && et AND en php.Comme en java & (éval courte) && (éval longue)Merci.D


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales