zoukankan      html  css  js  c++  java
  • 算法心得

    X = X and (X-1) 目的是去除最右边的为1的位元
    X = X or (x+1) 目的是让最右边为0的位元变成1
    X = X and (X+1) 目的让最右边相邻为1的位元全部变成0
    X = X or (x-1) 目的让最右边相邻为0的位元全部变成1

    X = (not X) and (x+1) 目的是右边的位元0变成1, 然后其余位变成0
    X = (not X) or (x-1) 这个是右边为1的位元变0, 然后其余位变成1


    下面的公式 可以让右边相邻的为0的位元变成1, 其余位设置成0.
    X = (not X) and (X-1)
    X = not (x or -x)
    X = (x and -x) -1

    下面的公式 可以让右边相邻的为1的位元变成0, 并将其余位设置成1
    X = (not X) or (x+1)

    X = X and (-X) 保留最右边为1的位元, 其余都设置为0
    X = X xor (x-1) 保留最右边为1的位元, 并将该位元最右边为0的位元都变成1, 靠其左边的位元都设置为0
    X = X xor (x+1) 保留最右边为0的位元, 将其右边的所有位元设置1, 左边的所有位元设置为0

    下面的公式将最右边相邻的为1的位元设置成0
    x = ((x or (x -1)) + 1) and x
    x = ((x and -x) + x) and x

    德摩根定律:
    not (x and y) = (not x) or (not y)
    not (x or y) = (not x) and (not y)
    not (x + 1) = not x - 1
    not (x - 1) = not x + 1
    not (-x) = x - 1
    not (x xor y) = (not x) xor y
    not (x + y) = not x - y
    not (x - y) = not x + y

  • 相关阅读:
    IO流
    异常,File,递归,IO流
    Collection接口 map
    使用canvas画出的时钟
    js对象2
    js对象
    js 猜数游戏、斗地主发牌、伪数字
    js函数2
    js函数
    js矩形,数组,杨辉三角
  • 原文地址:https://www.cnblogs.com/RyanHuang/p/3643123.html
Copyright © 2011-2022 走看看