• 位运算基本操作


    转载(来自我好友):https://xiaolei565.github.io/2020/04/20/Algorithm--Bit%20Operation/

    位运算

    算法–位运算

    概念

     符号描述运算规则
      & 两个位都为1时,结果才为1
      两个位都为0时,结果才为0  
    XOR ^ 异或 两个位相同则为0,相异为1
      ~ 取反 0变1,1变0
      << 左移 各二进位全部左移若干位,高位丢弃,低位补0
      >> 右移 各二进位全部右移若干位,对无符号数,高位补0,有符号数,各编译器处理方法不一样,有的补符号位(算术右移),有的补0(逻辑右移)

    异或操作的一些特点

    1
    2
    3
    4
    5
    6
    X^0=X
    X^1s = ~X //1s = ~0(1s表全1的数)
    X^(~X) =1s
    X^X = 0 //important
    a^b =c=>a^c=b,b^c=a //swap
    a^b^c = a^(b^c)=(a^b)^c//结合律

    实战中常用位运算操作

    • X&1==1 OR ==0 =>判断奇偶(x%2==1)
    • x=x&(x-1)=>清零最低位的1
    • X&-X=>得到最低位的1
    • 将x最右边的n位清零-x&(~0<<n)
    • 获取x的第n位值(0或者1)-(x>>n)&1
    • 获取x的第n位的幂值-x&(1<<(n-1))
    • 仅将第n位置为1-x |(1<<n)
    • 仅将第n位置为0-x &(~(1<<n))
    • 将x最高位至第n位(含)清零-x &((1<<n)-1)
    • 将第n位至第0位(含)清零-x &(~((1<<(n+1))-1))
     
  • 相关阅读:
    Cannot allocate memory(1)
    tomcat server.xml配置属性
    HTB-靶机-Nibbles
    HTB-靶机-CrimeStoppers
    HTB-靶机-FluxCapacitor
    HTB-靶机-Bashed
    HTB-靶机-Inception
    HTB-靶机-Fulcrum
    HTB-靶机-Ariekei
    HTB-靶机-Enterprise
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12808040.html
Copyright © 2020-2023  润新知