/ / Pourquoi les opérateurs au niveau des bits convertissent les opérandes en entiers 32 bits signés JavaScript [dupliquer] - javascript, bitwise-operators

Pourquoi les opérateurs au niveau des bits convertissent les opérandes en entiers 32 bits signés

J'appliquais des opérateurs sur les nombres décimaux et je obtenais des entiers. Après avoir lu Documentation est venu pour savoir que les opérateurs peu-sages convertissentdes opérandes en nombres entiers 32 bits signés, ce qui donne un nombre entier et la partie décimale est supprimée. Quelqu'un peut-il expliquer pourquoi les opérateurs au niveau des bits tronquent la partie décimale du nombre? Existe-t-il une limitation matérielle selon laquelle les opérateurs au niveau du bit ne peuvent pas être appliqués aux nombres décimaux?

console.log(1.5 | 1.5);
console.log(1.5 & 1.5);
console.log(0.5 & 1.5);

Réponses:

0 pour la réponse № 1

En raison de ses spécifications:

Les opérateurs au niveau des bits traitent leurs opérandes en tant queséquence de 32 bits (zéros et uns), plutôt que sous forme décimale, hexadécimale ou octale Nombres. Par exemple, le nombre décimal neuf a un binaire représentation de 1001. Les opérateurs au niveau du bit effectuent leurs opérations sur de telles représentations binaires, mais elles renvoient du code JavaScript standard valeurs numériques.

Plus Info spécification ici.