« Programmation JavaScript/Opérateurs de bits » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Autre utilisation classique des opérations binaires
 
Ligne 16 :
Ici, nous avons 4 colonnes qui représentent un bit chacun. Il faut lire les données de droite à gauche. La première colonne représente 2^0, le second 2^1, le troisième 2^2 et enfin la quatrième 2^3
 
Il suffit alors de cumuler les valeurs. Ici :
<pre>
1* 2^0 = 1
Ligne 24 :
</pre>
 
Soit : 3
 
La combinaison de 0 et 1 permet donc de représenter n'importe quel chiffre selon la taille en octet alloué à la variable. Sur 4 bit, on peut alors représenter au maxiummaximum le chiffre 1111 qui donne:
<pre>
1* 2^0 = 1
Ligne 34 :
</pre>
 
soitSoit : 15. En conséquence, en partant de 0, 4 bits représentent 16 valeurs possible allant de 0 à 15
 
=== Opérations ===
 
Il est possible de manipuler des valeurs binaire en utilisant des opérateuropérateurs spécifiques.
Ainsi, il est possible de faire :
* une opération "ou exclusif",
 
* une opération "ouet",
* une opération "etou exclusif",
* un décalage de bits.
* une opération "ou exclusif"
* décalage de bits
 
Les 3 premières opérations se font "bit à bit" à place respectives.
 
Les 3 premières opérations se font "bit à bit" à place respectives. :
* Le "et" vérifie si les deux bits valent "1". Dans ce cas, l'opération résulte d'un "1", sinon "0".
* Le "ou" vérifie si un des bit est égal à "1" ou les deux. Dans ce cas, l'opération résulte d'un "1", sinon "0".
Ligne 78 ⟶ 77 :
 
Résultat 0101 => 5
 
=== Limitation ===
 
{{Attention|Les opérations se font sur 32 bits.
 
Les autres bits sont ignorés.}}
 
Exemple :
<syntaxhighlight lang="javascript">
0x100000007 >> 1 /* == 3 car seuls les bits 31 à 0 sont pris en compte. */
</syntaxhighlight>
 
=== Utilité ===
 
On se sert d'opérationopérations binairebinaires dans beaucoup de cas, notamment pour le chiffrement, ou encore des opérations optimisées en mathématiques.
Elles sont aussi utilisées pour manipuler les ensembles d'items dont le nombre d'instances est limité (énumération) représentés sous la forme d'un entier ou un bit à 1 représente la présence d'un item, et 0 son absence.
 
Il est à noter que répéter deux fois un "ou exclusif" revient à revenir à la valeur d'origine.
Exemple :
 
Valeur 5 => 0101