zoukankan      html  css  js  c++  java
  • 位运算基本操作

    转载(来自我好友):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))
     
  • 相关阅读:
    url 路径的拼接
    java 实现导出Excel文件
    window 使用频率最高的快捷键
    jeesite 框架的简单应用
    一个软件开发者的解决问题的心得——善于利用蛛丝马迹
    在linux上安装dotnetcore
    c#多线程同步之EventWaitHandle使用
    sharepoint 2013 安装
    模板模式的应用
    正则表达式的应用
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/12808040.html
Copyright © 2011-2022 走看看