Ответ 1
Оператор ^
является побитовым оператором XOR. Чтобы присвоить значение, используйте Math.pow
:
var altura2 = Math.pow($('#ddl_altura').attr("value")/100, 2);
У меня есть код 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?
Оператор ^
является побитовым оператором 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.
aᵇ
можно записать в JS двумя способами:
Math.pow(a, b)
⇢ старый способ
a ** b
⇢ новый способ (ˢᵘᵖᵖᵒʳᵗᵉᵈ с ES7)
Тогда:
var altura2 = ($('#ddl_altura').attr("value")/100) ** 2
Указан побитовый оператор XOR кареткой (^) и, конечно же, работает непосредственно в двоичной форме номера. Побитовое XOR отличается от побитовое ИЛИ, поскольку оно возвращает только 1 когда ровно один бит имеет значение 1.
Источник: http://www.java-samples.com/showtutorial.php?tutorialid=820
Его называют побитовым 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;