• 恶补java基础 位运算符


    以前不知道在哪看过别人写博客里的一句话  “越学的深入觉得自己会的东西越少”。最近研究了一下java的基础算法  hash表

    被一些位运算符搞的头都大了 决心花一些时间研究一下以前一直觉得没用的东西!

    位移动运算符:

    <<表示左移, 左移一位表示原来的值乘2.

    例如:3 <<2(3为int型) 
    1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011, 
    2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位, 
    3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 0000 0000 0000 1100, 
    转换为十进制是12。

    同理,>>表示右移. 右移一位表示除2.


    java中的>>与>>>的用法  以及区别

     ">>"是带符号右移,高位是1则补1,是零则补0;">>>"是无符号右移,无论是0是1,都是补0;

    1010 0000 0000 0000 0000 0000 0000 0000 >>4

    则为1111 1010 0000 0000 0000 0000 0000 0000;

    1010 0000 0000 0000 0000 0000 0000 0000 >>>4

    则为0000 1010 0000 0000 0000 0000 0000 0000;


    位运算:

    位运算符包括: 与(&)、非(~)、或(|)、异或(^)

      &:当两边操作数的位同时为1时,结果为1,否则为0。如1100&1010=1000   

          | :当两边操作数的位有一边为1时,结果为1,否则为0。如1100|1010=1110   

          ~:0变1,1变0   

          ^:两边的位不同时,结果为1,否则为0.如1100^1010=0110

    http://www.cnblogs.com/highriver/archive/2011/08/15/2139600.html

  • 相关阅读:
    你不知道的JavaScript(上)作用域与闭包
    csu 1982: 小M的移动硬盘
    csu 1985: 驱R符
    csu 1987: 绚丽的手链
    2017ACM/ICPC广西邀请赛 1007 Duizi and Shunzi
    2017ACM/ICPC广西邀请赛 1005 CS Course
    2017ACM/ICPC广西邀请赛 1004 Covering
    hdu 1209 Clock
    trac中wiki直接显示任务代码
    phpcms中action值的含义
  • 原文地址:https://www.cnblogs.com/daxin/p/3329979.html
Copyright © 2020-2023  润新知