Javascript, что делает оператор ^ (каретка)?

У меня есть некоторый код 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>

Что это ^ (каретный) оператор значит в Javascript?

5 ответов

Решение

^ оператор является побитовым оператором XOR. Чтобы возвести в квадрат значение, используйте Math.pow:

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

^ например, выполняет исключающее ИЛИ (XOR)

6 является 110 в двоичном виде, 3 является 011 в двоичном виде, и

6 ^ 3, имея в виду 110 XOR 011 дает 101 (5).

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

Math.pow (x, 2) вычисляет но для квадрата лучше использовать x*x Math.pow использует логарифмы, и вы получите больше ошибок аппроксимации. (x² ~ exp(2.log(x)))

Его называют побитовым XOR. Позвольте мне объяснить это:

У тебя есть:

Decimal Binary   
0         0
1         01
2         10
3         11

Теперь мы хотим 3^2=? тогда мы имеем 11^10=?

11
10
---
01
---

так 11^10=0101 в десятичном виде 1,

Таким образом, мы можем сказать, что 3^2=1;

Это побитовый оператор XOR.

Побитовый оператор XOR обозначается кареткой ( ^) и, конечно, работает непосредственно с двоичной формой чисел. Побитовое XOR отличается от побитового ИЛИ тем, что возвращает 1 только тогда, когда ровно один бит имеет значение 1.

Источник: http://www.java-samples.com/showtutorial.php?tutorialid=820

Другие вопросы по тегам