Opérations au niveau du bit en JavaScript : dévoiler le mystère de l'opérateur monotube ("|")
Le monotube ("|") L'opérateur en JavaScript effectue des opérations au niveau du bit ou, qui sont essentielles pour manipuler des bits individuels dans les représentations binaires. Contrairement aux opérateurs logiques comme ||, qui effectuent des opérations sur des valeurs booléennes, les opérateurs au niveau du bit fonctionnent directement sur la représentation binaire des entiers.
Plus précisément, l'opérateur au niveau du bit ou "|" calcule la disjonction logique de ses deux opérandes entiers. Cela signifie que pour chaque position de bit dans les représentations binaires des opérandes, si au moins un bit est 1, le bit résultat est 1.
a | b = (a_n OR b_n) FOR ALL n
Cependant, comme les opérations au niveau du bit n'ont de sens que sur des entiers, JavaScript tronque les valeurs non entières en entiers avant d'effectuer l'opération. Cela peut conduire à des résultats inattendus, comme le démontrent les exemples fournis :
console.log(0.5 | 0); // 0 console.log(-1 | 0); // -1 console.log(1 | 0); // 1
Dans le premier exemple, 0,5 est tronqué à 0 avant d'effectuer l'opération au niveau du bit ou avec 0. Puisque les deux opérandes sont 0, le résultat is 0.
In the second example, -1 (in binary representation: 11111111111111111111111111111111) remains unchanged when performing the bitwise or operation with 0 (in binary representation: 00000000000000000000000000000000), resulting in -1.
Dans le dernier exemple, 1 (en représentation binaire : 00000000000000000000000000000001) reste à nouveau inchangé, ce qui donne 1.
Par conséquent, pour les entiers, x | 0 renvoie simplement x.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!