这样的输出是20,但是如何?

时间:2018-07-28 11:20:15

标签: java

输出为20,但我不了解其背后的逻辑。请任何人解释

router.get('/', send-every-day, (req, res) => {
  //Your code
} );


router.get('/blah', send-every-day, (req, res) => {
  //Your code
} );


router.get('/blahhh', send-every-day, (req, res) => {
  //Your code
} );

1 个答案:

答案 0 :(得分:1)

如果您阅读有关Bitwise and Bit Shift Operators的信息:-

一元按位补数运算符“〜”反转位模式;它可以应用于任何整数类型,每个“ 0”为“ 1”,每个“ 1”为“ 0”。例如,一个字节包含8位。将此运算符应用于位模式为“ 00000000”的值,会将其模式更改为“ 11111111”。

有符号的左移位运算符“ <<”向左移位位模式,而有符号的右移位运算符“ >>”向右移位位模式。位模式由左操作数给出,移位位置的数量由右操作数给出。无符号右移运算符“ >>>”将一个零移位到最左位置,而“ >>”之后的最左位置取决于符号扩展。

按位&运算符执行按位AND运算。

按位^运算符执行按位异或运算。

按位|运算符执行按位或运算。

以下程序BitDemo使用按位AND运算符将数字“ 2”打印到标准输出。

class BitDemo {
    public static void main(String[] args) {
        int bitmask = 0x000F;
        int val = 0x2222;
        // prints "2"
        System.out.println(val & bitmask);
    }
}