案例演示 >>,>>>,<<的用法:

  • <<:左移 左边最高位丢弃,右边补齐0

:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0

  • 最有效率的算出2 * 8的结果

    1. public static void main(String[] args) {
    2. /*
    3. * <<:左移 左边最高位丢弃,右边补齐0
    4. * >>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
    5. * >>>:无符号右移 无论最高位是0还是1,左边补齐0
    6. * 最有效率的算出2 * 8的结果
    7. */
    8. //左移,向左移动几位就是乘以2的几次幂
    9. //System.out.println(12 << 1); //24
    10. //System.out.println(12 << 2); //48
    11. /*
    12. 00000000 00000000 00000000 00001100 12的补码
    13. (0)0000000 00000000 00000000 000011000 24的补码
    14. (00)000000 00000000 00000000 0000110000 48的补码
    15. */
    16. //右移,向右移动几位就是除以2的几次幂
    17. //System.out.println(12 >> 1);
    18. //System.out.println(12 >> 2);
    19. /*
    20. 00000000 00000000 00000000 00001100 12的补码
    21. 000000000 00000000 00000000 0000110(0) 6
    22. 0000000000 00000000 00000000 000011(00) 3
    23. */
    24. //最有效率的算出2 * 8的结果
    25. System.out.println(2 << 3);
    26. }