• 位运算_233


    位运算

    位运算概述

    • 计算机以二进制储备,只存在 (1,0) 两种状态

    • 计算机对于二进制数据的运算叫位运算

    按位于运算符(&)

    • 两数同时为 (1),答案是 (1),否则结果是 (0)

    用途

    1.清零

    一个数清零,就将其二进制数与 (0) 相与,结果为零

    2.取一个数的指定位置

    如果想取出某一数二进制下的后几位,则可以将其与 (Y) 相与,(Y) 的定义是要求的位数为 (1)

    3.判断奇偶

    最后一位是 (1) 为奇数,(0) 则为偶数。因此可以

    if ( ( a & 1 == 0 ) )
    

    或运算(|)

    • 如果有 (1) 结果为 (1)

    用途

    更改位置为 (1)

    将要求的位数改成1,就可以与一个要求位数为 (1) 数相或,即可完成更改


    异或与算符(^)

    • 两两相同为 (0),不同为 (1)

    • 简单说就是不进数相加,不一样就为 (1)

    性质

    1. 交换律

    2. 结合律 ((a xor b)xor c = a xor (b xor c))

    3. 对于任何数 x ,都有 (a xor a = 0 , a xor 0 = a)

    4. 自反性 (a xor b xor b=a xor 0=a)

    用途

    1.翻转指定位

    与一个指定位数位 (1) 的数相异或,即可

    2.与 (0) 异或值不变

    同性质3

    3.交换两个数
    void Swap(int &a, int &b){
        if (a != b){
            a ^= b;
            b ^= a;
            a ^= b;
        }
    }
    

    综合使用

    [a+b=((a&b)<<1)+(a xor b) ]

  • 相关阅读:
    Web API初印象
    SQL注入总结篇
    Debian Linux 下安装pip3
    DVWA:环境搭建
    AWVS使用手册
    常见的反爬虫和应对方法
    Fiddler抓取手机APP数据包
    爬虫 Scrapy框架 爬取图虫图片并下载
    python 爬虫基础知识(继续补充)
    Python 爬虫 多进程清洗代理
  • 原文地址:https://www.cnblogs.com/lToZvTe/p/13922834.html
Copyright © 2020-2023  润新知