zoukankan      html  css  js  c++  java
  • 位运算

    位运算

    (一)按位与&
    (1)去一个数的指定位
    n=1010 1100;
    n=n&0000 1111;
    n=0000 1100;
    (2)使一个数的指定位置为0
    n=1010 1100;
    n=n&1111 0000;
    n=1010 0000;
    (二)按位异或^
    n=1010 1100;
    n=n^0000 1111;
    n=1010 0011;

    (三)按位或 |
    n=1010 1100;
    n=n|0000 1111;
    n=1010 1111;

    位运算符图解
    这里写图片描述
    具体使用部分如下:

    求一个数二进制中1的个数

    //求一个数的二进制中有多少个1
    int one(int x)
    {
        int count = 0;
        while(x)
        {
            count ++;
            x = x & (x - 1);
        }
        return count;
    }

    检验一个数是否为2的N次方

    //检验一个数是否为2的N次方
    void num(int x)
    {
        if(!(x&(x-1)))
            cout<<"true"<<endl;
        else
            cout<<"flase"<<endl;
    }

    不使用除法符号求两个数的平均值

    //不使用除法符号求两个数的平均值
    int num(int x, int y)
    {
        return (x&y) + ((x^y) >> 1);
    }

    不使用第三个变量交换a和b(a,b均为int)

    //不使用第三个变量交换a和b(a,b均为int)
    void swap(int &x,int &y)
    {
        x = x ^ y;
        y = x ^ y;
        x = x ^ y;
    }
  • 相关阅读:
    Kindeditor 代码审计
    tamper参数
    大学站注入点(安全狗)
    sqlmap注入小结
    tamper绕WAF详解
    网站安全狗最新版绕过测试
    大学站防SQL注入代码(ASP版)
    防SQL注入代码(ASP版)
    xss利用和检测平台
    tamper绕WAF小结
  • 原文地址:https://www.cnblogs.com/nanfenggu/p/7900113.html
Copyright © 2011-2022 走看看