Java中的按位和运算符

贾斯汀C.

我不明白为什么只有num1才应该输出输出。我在这里想念什么吗?

var num1 = 0x200127;
var num2 = 0x200124;
    
if(num1 & 0x100 == 0x100){
    console.log("num1: " + (num1 & 0x100 ) );
}
if(num2 & 0x100 == 0x100){
    console.log("num2: " + (num2 & 0x100 ) );
}

showdev

这是操作顺序的问题。作为参考,请检查JavaScript运算符Priority表

==的精度为10,而&精度为9,因此需要==首先进行评估。

因此,您的代码本质上是在评估:

num & (0x100 == 0x100)

等效于:

num & true

num1输出,而num2不是不是因为:

0x200127 & true == 1 (true)
0x200124 & true == 0 (false)

尝试将按位运算放在括号中,因为分组运算符的优先级最高。

if((num1 & 0x100) == 0x100){
    console.log("num1: " + (num1 & 0x100 ) );
}
if((num2 & 0x100) == 0x100){
    console.log("num2: " + (num2 & 0x100 ) );
}

在下面测试:

var num1 = 0x200127,
  num2 = 0x200124,
  output = document.getElementById('output');

if ((num1 & 0x100) == 0x100) {
  output.innerHTML += "<p>num1: " + (num1 & 0x100) + "</p>";
}
if ((num2 & 0x100) == 0x100) {
  output.innerHTML += "<p>num2: " + (num2 & 0x100) + "</p>";
}
<div id="output"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重载类函数中的按位And(&)运算符和“ * this”

来自分类Dev

.NET Framework方法中的按位和运算符

来自分类Dev

C中的按位运算符和移位问题

来自分类Dev

按位运算符和for循环

来自分类Dev

Java中的按位右移运算符

来自分类Dev

Java中按位运算符的屏蔽选项

来自分类Dev

Java中的带符号字节类型和按位运算符?

来自分类Dev

Java中的按位运算符仅适用于整数和长整数?

来自分类Dev

在Java中对0xFF使用按位和运算符的原因

来自分类Dev

Java中的按位运算符仅适用于整数和长整数?

来自分类Dev

Java | 按位运算符

来自分类Dev

hashCode中按位运算符>>>

来自分类Dev

Gremlin中的按位运算符

来自分类Dev

PHP中的按位运算符

来自分类Dev

按位运算符和位操作

来自分类Dev

按位'&'运算符

来自分类Dev

按位或运算符

来自分类Dev

如何使用按位运算符和位操作在C中交换2个整数?

来自分类Dev

Java运算符性能算法与按位运算

来自分类Dev

为什么在比较布尔值时,按位运算符比Java中的“正常”运算符要慢?

来自分类Dev

用按位和运算符分配值

来自分类Dev

使用按位和运算符c ++

来自分类Dev

组合按位和与补运算符

来自分类Dev

Java 8-如何通过groupingBy和summingInt使用lambda并使用按位运算符

来自分类Dev

为什么按位运算符没有逻辑“和/或”运算符那么聪明

来自分类Dev

按位逻辑运算符和移位运算符

来自分类Dev

按位和运算符如何在javascript中的对象上工作?

来自分类Dev

Java:如何按位XOR运算符评估条件?(^)

来自分类Dev

String Java 之间的按位运算符