Tag: 按位操作符

什么是按位移(左或右)做什么和它用于什么?

我已经看到了我所看到的各种代码中的运算符>>和<< (我其实都没有理解),但是我只是想知道他们实际上做了什么以及它们的实际用途是什么。 编辑 如果这些变化像x * 2和x / 2 ,实际使用*和/操作符有什么实际的区别? 是否有性能差异?

Java:在负数上右移

我对负号右移操作很困惑,这里是代码。 int n = -15; System.out.println(Integer.toBinaryString(n)); int mask = n >> 31; System.out.println(Integer.toBinaryString(mask)); 结果是: 11111111111111111111111111110001 11111111111111111111111111111111 为什么右移一个负数不是1(符号位)?

什么是位掩码?

我对C编程相当陌生,并且遇到了位掩码的问题。 有人能向我解释位掩码的一般概念和function吗? 例子非常感谢。