因为在java中int是占4个字节所以在计算机中转换为二进制位有32位
2*8在计算机中是这样运算的:先将2转换为:0000 0000 0000 0000 0000 0000 0000 0010
将8转换为:* 0000 0000 0000 0000 0000 0000 0000 1000
然后计算机是这样进行二进制的乘法运算的:-------------------------------------------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0010
最后的到的结果为: ------------------------------------------------------------------------
000 0000 0000 0000 0000 0000 0000 0001 0000
也就是我们后面看到的16了。而如果你进行一位运算的话:0000 0000 0000 0000 0000 0000 0000 0010
直接左移三位计算机是这样做的: 000 | 0 0000 0000 0000 0000 0000 0000 0010000前面补三个零,后面的不要。
这样计算机的运算明显简单多了。明白了吗?
|