web-dev-qa-db-fra.com

Javascript, que fait l'opérateur ^ (caret)?

J'ai du code javascript:

<script type="text/javascript">
$(document).ready(function(){
  $('#calcular').click(function() {
    var altura2 = ((($('#ddl_altura').attr("value"))/100)^2);
    var peso = $('#ddl_peso').attr("value");
    var resultado = Math.round(parseFloat(peso / altura2)*100)/100;
    if (resultado > 0) {
      $('#resultado').html(resultado);
      $('#imc').show();
    };
  });
});
</script>

Que signifie l'opérateur ^ (caret) en Javascript?

59
Torres

L'opérateur ^ est l'opérateur binaire XOR. Pour mettre une valeur en carré, utilisez Math.pow :

var altura2 = Math.pow($('#ddl_altura').attr("value")/100, 2);
67
Gumbo

^ exécute en exclusivité OR (XOR), par exemple

6 est 110 en binaire, 3 est 011 en binaire, et

6 ^ 3, ce qui signifie 110 XOR 011 donne 101 (5).

  110   since 0 ^ 0 => 0
  011         0 ^ 1 => 1
  ---         1 ^ 0 => 1
  101         1 ^ 1 => 0

Math.pow (x, 2) calcule mais pour carrés, il vaut mieux utiliser x*x car Math.pow utilise des logarithmes et vous obtenez plus d'erreurs d'approximations. (x² ~ exp(2.log(x)))

32
Ring Ø

C'est l'opérateur au niveau du bit XOR.

3
Petar Minchev

L'opérateur au niveau du bit XOR est indiqué par un signe (^) et, bien sûr, fonctionne directement sur la forme binaire de Nombres. Au niveau du bit XOR est différent de bitwise OR dans le sens où il ne retourne que 1 quand exactement un bit a la valeur 1.

Source: http://www.Java-samples.com/showtutorial.php?tutorialid=820

2
Sarfraz

Son appelé au niveau du bit XOR. Laissez-moi l'expliquer:

Tu as :

Decimal Binary   
0         0
1         01
2         10
3         11

Maintenant nous voulons 3^2=? Alors nous avons 11^10=?

11
10
---
01
---

so 11^10=0101 en décimal est 1.

On peut donc dire que 3^2=1;

1
Shubham Verma