位操作运算符

【&与运算|或运算

  运算:参与运算的两数对应的二进制相与

        eg:    13&17=?
            13的二进制数为:1101,17的二进制数为:10001
             13&17=(01101)&(10001)=(00001)=1
 
 运算:参与运算的两数对应的二进制相或
        同理以    13 | 17=?为例,
             13 | 17=(01101)|(10001)=(11101)=29
 
【<<、>> 移位运算】
 以17为例:17的二进制为10001
    左移运算符:高位丢弃,低位补0。位数由定义决定,如(17)int 就有32位,<<左移运算相当于乘以2的幂次,次数有<<后面的数决定
        eg:17<<1=(10001)<<1=(00010)=2
 
    右移运算符:右移n位相当于除以2的n次方,注意:在右移时符号位随同移动。当为整数时,最高位补0,为负数时,符号位为1,补0还是补1取决于编译系统规定。
 
【异或运算符^】
参加预算的两个数,如果相应位为“异”,则该位为1,否则为0
    特殊使用:
            1.使特定位翻转,对应X要翻转的各位,该数的对应位为1,其余为0,用次数与预算数异或即可
            2.与0疑惑保留原值
 
【取反运算~】
参加运算的数的二进制位按位取反即可。



posted @ 2019-05-02 19:39  NCat  阅读(563)  评论(0)    收藏  举报