console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Pourquoi 0.5 | 0
renvoie-t-il zéro, mais tout entier (y compris négatif) renvoie l'entier en entrée? Que fait le tuyau unique ("|")?
console.log(0.5 | 0); // 0
console.log(-1 | 0); // -1
console.log(1 | 0); // 1
Pourquoi 0.5 | 0
renvoie-t-il zéro, mais tout entier (y compris négatif) renvoie l'entier en entrée? Que fait le tuyau unique ("|")?
Ceci est un bitwise ou .
Comme les opérations au niveau des bits n'ont de sens que sur les entiers, 0.5
est tronqué.
0 | x
est x
, pour tout x
.
La comparaison de bits est si simple qu'elle est presque incompréhensible;) Découvrez ce "nybble"
8 4 2 1
-------
0 1 1 0 = 6 (4 + 2)
1 0 1 0 = 10 (8 + 2)
=======
1 1 1 0 = 14 (8 + 4 + 2)
Au niveau des bits, ORing 6 et 10 vous en donneront 14:
alert(6 | 10); // should show 14
Terriblement déroutant!
Un seul tuyau est un peu sage OU .
Effectue l'opération OU sur chaque paire de bits. a OU b donne 1 si a ou b vaut 1.
JavaScript tronque les nombres non entiers. Il est donc calculé comme 0|0
, ce qui correspond à 0.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.