Java基础面试题:使用最快的效率将2变成8

原理:将被转换的数字进行位移运算

package blog.csdn.net.karen.javasedemo;

/**
* 位移运算演示
* <p>
* Created by Karen Chia on 2018/11/8
*/
public class OperatorDemo {

public static void main(String[] args) {
byte number1 = 2;
byte res = (byte) (number1 << 2);
System.out.println(res);
}
}

演算过程

1 本文中将被转换的数字定为 byte 数据类型,只是为了演示方便,定为其它数据类型均可
2 表达式 ==number1 << 2== 说明:将数字 number1 对应的二进制数左移2位,空出的低位使用“0”补足
3 数字 2 的二进制表示:byte类型占内存空间为1个字节,1个字节为8个位
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
|–|–|–|–|–|–|–|–|
4 将2的二进制表示数左移2位
| 0 | 0 | 0 | 0 | 1 | 0 | | |
|–|–|–|–|–|–|–|–|
5 二进制数被移动后,空出的低位用“0”补齐
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
|–|–|–|–|–|–|–|–|
将以上二进制数转换为十进制表示,结果为8