誰かがこの動作を説明できますか?JavaScriptのif文でbitwise xorが動作しないのはなぜですか?
https://jsfiddle.net/td1qtyxL/9/
function checkSignsWeird(a,b){
var output = "";
if(a^b < 0){
output = "The "+a+" and "+b+" have DIFFERENT signs.";
}else{
output = "The "+a+" and "+b+" have the SAME sign.";
}
console.log(output);
}
a^b
を変数に格納されている(または括弧に包まれた)されていない限り、基本的には動作しません。
checkSignsWeird(-50,40);
checkSignsWeird(60,70);
どちらも同じ結果をもたらします。
エイミー私は何か間違っているか、これはバグですか?それがif節にあるときや、別の場所にあるときにビット単位で動作するかどうかは異なりますか?私は、多くの場合、ビット単位で動作するだけで、これはエレガントだと思った、ここからの回答をフォローしていない:Check if two integers have the same sign
プログラミング言語を指定してください。 JS –
のように見えます。忘れて申し訳ありません:) – Firsh
おそらく[*演算子優先順位*](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Operator_Precedence)? – RobG