黑马程序员技术交流社区

标题: 关于位运算的个人总结和预算技巧跟大家分享 [打印本页]

作者: KongPro    时间: 2015-8-9 18:24
标题: 关于位运算的个人总结和预算技巧跟大家分享
       (1)左移位:移动一位 ,后位补0,就是多了一位,然后所有位数为1*2的幂数都需要多一个,也就是多乘一个2,左移动n位,乘以2^n。
3 -> 011 = 1*2^1 + 1*2^0     左移一位:  011<<1  -> 0110
                        +1         +1
                          ||            ||
       0110 = 1*2^2 + 1*2^1

      运算技巧:
           3<<1   =  6    =  3*2的1次方
           3<<2   =  12  =  3*2的2次方
           3<<3   =  24  =  3*2的3次方


        (2)右移位(符号位不变):右移一位同理,幂的次都数减少一个,右移动n位就是除以2^n.

        (3)&运算,按位与运算:1&1 = 1, 1&0 = 0,0&0 =0

        (4)|运算:按位或运算:1|1=1,1|0 =0, 0|0 =0

        (5)^运算(异或):按位相同为0,不同为1

        (6)~取反:按位去反: 0变1,1变0.
            运算技巧:取反 = 原数的反值-1: 例如:
                                                                   2取反 = (-2)-1 = -3







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2