[tutorial] Les opérateurs binaires

Répondre
Partager Rechercher
Les opérations binaires :

Voila, comme promis je sors la première partie du tut, mais la je donne aucun exemple d'application de tout ca, ca devrais arriver un peu plus tard, si j'ai le temp de le rédiger

Comme vous devez le savoir, le binaire est la base numérique dans laquelle résonne l’ordinateur, et par cela les opération binaire sont les instructions les plus rapides que l’on puisse trouver.

Pour bien comprendre les opération binaire il est évidant qu’il faut résonner en base binaire et non en base décimale. Comment convertir un nombre en base 10 en un nombre en base 2 ? pour les flemmards, la calculatrice Windows fait ça très bien. Pour les autres… et bien faites comme pour les flemmards, étant un flemmard moi même, j’ai la flemme d’expliquer

Vous obtenez donc une suite de 1 et 0, dont vous vous demandez fortement ce qu’on peut en faire….

Pour manipuler ces chaînes binaires, on dispose en C (et en nwscript) plusieurs outils, les opérateurs binaires, qui reprennent l’algorithme Booléen (vous savez, vous étiez sensé voir ça en TS, oui je sais c’est loin LOL…).

Bref…
Nous pouvons donc utiliser les caractères suivants : &, |, ^, ~, <<, >>

Pour les expliquer, nous allons considérer deux chaînes binaires : 10101 (21) et 11000 (24)

L’opérateur & compare les chaînes bit par bit, et renvoie 1 si les deux bit sont a 1, et 0 dans les autres cas. Dans notre exemple :
Chaine1 : 10101 (21)
Chaine2 : 11000 (24)
Résultat : 10000 (16)

L’opérateur | compare les chaînes bit par bit et renvoie 1 si l’un des deux bit est a 1, et 0 si ils sont tout les deux à 0 :
Chaine1 : 10101 (21)
Chaine2 : 11000 (24)
Résultat : 11101 (29)

L’opérateur ^ compare les chaînes bit par bit, et renvoie 1 si les deux valeurs sont différentes l’une de l’autre, et 0 si elles sont identiques :
Chaine1 : 10101 (21)
Chaine2 : 11000 (24)
Résultat : 01101 (13)

En C il existe un 4e opérateur, le ~, mais apparemment il n’est pas reconnus sous Aurora

Ensuite, nous avons les décalage bit par bit :
L’opérateur b << n déplace de n bit vers la gauche la chaîne b
Chaîne b : 00101 (5)
Décalage de 2 bit vers la gauche :
Résultat : 10100 (20)

L’opérateur b >> n déplace de n bit vers la droite la chaîne b
Chaîne b : 00101 (5)
Décalage de 2bit vers la droite
Résultat : 00001 (1) (les deux valeurs qui restaient on été détruites car elle sont passé hors de la portée de la variable, il n’y a JAMAIS de décimales en binaire )

Et bien voila, je crois qu'on a tout vu.
Maintenant vous n'avez plus qu'a méditer la dessus en réfléchissant à quoi ca peut bien servir ^_^'
Moi je sais, moi je sais !!
(Mais je pense que tu préfère le dire toi, et pis j'ai la flemme d'écrire tous les exemples...)
Mais c'est vrai que c'est 'achement pratique les flags dans NWN, d'ailleurs la biblio des memetics IA les utilise énormément !
(J'espère que tu donneras d'autres exemples, à part la * ou la / par 2 rapide, je vois pas trop dans NWN.... )
Euh... vous voulez que je fasse un tut "comment lire ma signature ???" LOL

ben c'est de l'hexadecimal tiré de la table ASCII et converti en binaire.

Tu prend les bit 8 par 8, tu les convertis en hexadecimal, puis tu compare la valeur sur ta table ASCII pour trouver le symbole correspondant, puis, ben le premier qui trouve ce que c'est il a gangé ^^ (Jedaï t'as pas le droit de jouer toi )
C'est l'opérateur ternaire du C, le seul opérateur ternaire que je connaisse en prog d'ailleurs .
Va voir le sujet "Switch, int et constante" juste en-dessous, c'est expliqué.
ralala combien je donnerais pour faire ca en cours......

mais non la cette année c'est philo, bio et compagnie...... Y_Y

Franchement vous preferez faire quoi en cours ? le binaire ou la philo ? (bon ca m'empèche pas de faire du binaire en philo mais ...... )
Citation :
Provient du message de Skanzo Sylan
Pendant les cours d'electro, je révisais mon solphège rythmique
Moi c'était en dessin industriel que je bossais mes gammes, j'avais dessiné mon manche de guitare sur un Té

Jaha Effect
65-122-114-97-101-108-48-55 ? Comme il y a une différence de 7 entre les deux derniers, ce n'est pas très dur.

La mienne :
00100001011011100110011101100101 0100110101110101011100110110100101100011011010010110010101101110

Me suis pas trompé ?
Oh fait c'est quoi ASCII ? C'est un programme ?
Le ASCII est une manière de coder les caractères en utilisant 2 chiffres en base 16.
On obtient donc des nombres de 00 à FF qui permettent de coder pas mal de choses (et en particulier des caractères) mais qui commence à être un peu limité avec la demande de nouveau support pour les nouvelles langues implantées.
*un fourgon arrive sur les chapeaux de roue et freine dans un crissement de pneu brûlé*

- Arrêtez-moi tout çà, et en vitesse.

*des messieurs en noir jaillissent de la porte arrière et embarquent sans ménagement tout ce petit monde qui pousse des cris divers et variés*

- 10010
- 1110100

- pendant que j'y suis, flachouillez moi tout ce beau monde, faudrait pas que les médias apprennent l'évasion de ces Bolléens..

.........

*flashouille*

.....
...
..
Citation :
Provient du message de Skanzo Sylan
Bon et pis pour les Nor et les Nand, on fait comment?
pffff la fonction NOT s obtient en fesant : chaine^11111
et donc, on obtien la porte NOr en fesant : (chaine1|chaine2)^11111
et donc, on obtien la porte NAND en fesant : (chaine1&chaine2)^11111
voilouuuuuu, c ti pas facile tout ca ??
et en faite, l operateur ^ c est un ou exclusif , pfffffffff

:baille:



PS : et si c bien 65-122-114-97-101-108-48-55 la signature , ca se traduit par : Azrael07
Obscurantiste ! Le Parti des Ultra Booléens Subalternement Exhaustifs de Toute Activité Contrefaite - Car Esthétiquement Salissante, Sacrément Ostensoires et Ironiquement Rétrograde - Etants Sûrs (PUBS ET ACCESSOIRES) vous fout le doigt dans le nez ! VIve Boole ! Vive Boole ! Argggggg....
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés