【每日小知识】 面试题:System.out.println(3|9)输出什么?

2020-02-24 12:38:55 浏览数 (1)

面试题:System.out.println(3|9)输出什么?

这个题是比较基础的面试题,来自美团面试。主要考察位运算符的知识。

考察知识点: &和&&;|和||

&和&&:

共同点: 两者都可做逻辑运算符。它们都表示运算符的两边都是true时,结果为true;

不同点: &也是位运算符。& 表示在运算时两边都会计算,然后再判断;&&表示先运算符号左边的东西,然后判断是 否为true,是true就继续运算右边的然后判断并输出,是false就停下来直接输出不会再运行后面的东西。

|和||:

共同点: 两者都可做逻辑运算符。它们都表示运算符的两边任意一边为true,结果为true,两边都不是true,结果就为false;

不同点: |也是位运算符。| 表示两边都会运算,然后再判断结果;|| 表示先运算符号左边的东西,然后判断是否为true,是true就停下来直接输出不会再运行后面的东西,是false就继续运算右边的然后判断并输出。

回到本题:

3 | 9=0011(二进制) | 1001(二进制)=1011(二进制)=11(十进制)

关于位或运算:

按位或运算符“|”是双目运算符。其功能是参与运算的两数各对应的二进位相或。只要对应的二个二进位有一个为1时,结果位就为1。参与运算的两个数均以补码出现。

例如 9|5:

代码语言:javascript复制
 00001001
 |
 00000101
=00001101

(十进制为13)可见9|5=13

0 人点赞