逻辑运算与位运算

逻辑运算  (与,或,非)

  and

  or

  not

逻辑位运算

  &  按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0

               十进制:   2 & 2

               二进制位:   128  64  32  16  8  4  2  1

                2 =      0    0    0    0  0  0  1  0

                2 =      0    0    0    0  0  0  1  0

                  结果:    0    0    0    0  0  0    1  0 

 

 

               十进制:   2 & 0

              二进制位:   128  64  32  16  8  4  2  1

                2 =      0    0    0    0  0  0  1  0

                0 =      0    0    0    0  0  0  0  0

                  结果:    0    0    0    0  0  0    0  0 

 

  |   按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。

                先看两个事例:

 

                >>> 1|1

                1

                >>> 2|1

                3

            1|0    结果等于 1

               二进制位:   128  64  32  16  8  4  2  1

                1 =      0    0    0    0  0  0  0  1

                1 =      0    0    0    0  0  0  0  0     

                  结果:    0    0    0    0  0  0    0  1

         

  

            2|1    结果等于 3

               二进制位:   128  64  32  16  8  4  2  1

                1 =      0    0    0    0  0  0  1  0

                1 =      0    0    0    0  0  0  0  1  

                  结果:    0    0    0    0  0  0    1  1

 

   ~  按位取反运算符:取反减1

 

            ~1    结果等于  -2

                              正数部分           0          负数部分

              二进制位:   128  64   32  16  8  4  2  1  0  -1  -2   -4...

                1 =      0    0    0    0  0  0  0  1  0   0   0   0...

                  取反:    0    0    0    0  0  0    0  0  0   1   0   0...

                减 1:    0    0    0    0  0  0    0  0  0   0   1   0...

                结果:    0    0    0    0  0  0  0  0  0   0   1   0...

 

           

 

posted on 2017-04-04 16:09  蓝码骑士  阅读(212)  评论(0)    收藏  举报

导航