A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 宋耀冬 中级黑马   /  2013-3-16 13:20  /  1806 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

对java的位运算理解不够透彻  求一篇详细的文档  
能有几篇代码举例最好了

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人加油

查看全部评分

3 个回复

正序浏览
其实你可以看看毕老师的视频java编程基础里的第二天  讲解很详细   我这里有自己总结的供自己复习的笔记   你可以参考一下


&13位运算符
左移  右移(其中位表示二进制的位,是用来进行二进制运算的一种运算符号)
<<   左移           3<<2=12-->3*2*2=12   相当于乘与2的倍数 其实就是乘以2的移动的位数的次幂
    3<<2=12;
       0000-0000 0000-0000 0000-0000 0000-0011
   0000-0000 0000-0000 0000-0000 0000-001100   补零
>>   右移           3>>1=1-->3/2=1       相当与除以2的倍数 其实就是除以2的移动位数次幂
          移n位,就是对乘以或者除以2的n次幂
    用处:做运算时,最快的运算是位运算
     6>>2=1
       0000-0000 0000-0000 0000-0000 0000-0110
       000000-0000 0000-0000 0000-0000 0000-0110 最后两位不要
   规律:一个数往左移,越移越大;往右移,越移越小(个位有效位最后会移光)
>>>  无符号右移     3>>>1=1-->3/2=1      
    >>:最高位补什么由原有数据的最高位值而定;
        如果最高位0,右移后,用0补空位
        如果最高位1,右移后,用1补空位
   >>>:无论最高位是什么,右移后,都用0补
&14位运算符(与-或-异或)
0视为假,1视为真
&    与运算         6&3=2
   110   真真假
&011   假真真
————
   010   假真假
|    或运算         6|3=7
   110
  |011
————
   111
^    异或运算       6^3=5
     110
  ^ 011
————
     101
~    反码           ~6=-7
    000....000110     6的二进制表现
   ~111....111001     6的取反   十进制表示为-7
   -000....000001    -7减1
   =111....111000    得数取反  
   ~000....000111    就是整数7,加上负号就是第二行的-7
位运算符的细节
<<  空位补0,被移除的高位丢弃,空缺位补0
>>  被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1
>>> 被移位二进制最高位无论是0或者是1,空缺位都用0补
&   二进制位进行&运算,只有1&1时结果是1,否则是0
|   二进制位进行|运算,只有0|0时结果是0,否则是1
^   任何相同二进制进行^运算,结果是0;1^1=0;0^0=0
    不相同二进制位^运算结果是1;1^0=1;0^1=1
    一个数异或同一个数两次,结果还是那个数(用处:加密算法)
技巧   二进制1就是true;0就是false

这些都是视频里的东西,楼主可以仔细把视频看好,看的过程中一定要做笔记,否则回过头来  有些知识点忘记,或者复习将是一个大麻烦!
回复 使用道具 举报
位运算符 简单说就是操作二进制的,所以运算的时候,都要转换成二进制进行运算!
        非0为真   0代表的是false  1代表的是true
        &  如果有一个为0,结果为0
        |   如果有一个为1,结果为1
        ^  相同为0 不同的为1
        <<  左移 相当于乘2操作,左边舍弃,右边用0补
        >>  右移 相当于除以2操作 右边舍弃,左边高位是几就用几补
        >>> 无符号右移 相当于除以2操作 右边舍弃,左边高位永远用0补

点评

谢谢了  发表于 2013-3-16 13:33

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
其实lz要是有单片机的基础的话,理解那个位运算其实很容易的- -
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马