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*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=01
01
в десятичном виде 1
,
Таким образом, мы можем сказать, что 3^2=1;
Побитовый оператор XOR обозначается кареткой ( ^) и, конечно, работает непосредственно с двоичной формой чисел. Побитовое XOR отличается от побитового ИЛИ тем, что возвращает 1 только тогда, когда ровно один бит имеет значение 1.
Источник: http://www.java-samples.com/showtutorial.php?tutorialid=820