java笔记(1)----------位运算

1.计算机用补码运算是为了解决减法运算的问题,如2-1=2+(-1),因此可以没有减法运算.

2.在看java官方api源码时发现很多地方用到了位运算,如ArrayList,LinkedList,HashMap等.位运算好像效率比加减乘除高,有待补充.

 

java中int类型占用4个字节,一个字节8位.也就是说一个int数字用32位表示,

如1:

00000000 00000000 00000000 00000001

如-1

10000000 00000000 00000000 00000001

例子:2-1==2+(-1)=1

  2的补码:

        00000000 00000000 00000000 00000010 (2为正数三码一样)

  -1的补码:

    源码:10000000 00000000 00000000 00000001

    反码:11111111 11111111 11111111 11111110

    补码:11111111 11111111 11111111 11111111

  两者补码相加:

       00000000 00000000 00000000 00000010

       11111111 11111111 11111111 11111111

   结果:   00000000 00000000 00000000 00000001

   换成十进制为1

   注意:1.结果是补码形式,但是符号位为0,为正数,三码一致,故也是源码,               

      2.若符号位为1,还要转为源码.

 

posted on 2017-03-22 14:24  单纯的色狼  阅读(171)  评论(0)    收藏  举报