zoukankan      html  css  js  c++  java
  • 位运算相关(一)——位运算学习笔记

    简介

    位运算,是程序设计的一个重要领域,将数字转化为二进制之后再按位进行运算,效率高,是编程的一个重点知识。

    &(与运算)

    概念

    与运算的运算符为(&)。当两个数进行与运算时,将其二进制进行操作,对于每一位,只有两个数这一位的值都是(1),它的值才为(1),否则为(0)。也就是说,(1&1=1,1&0=0,0&1=0,0&0=0)

    举例

    (11&7)为例。

    (11)的二进制是(1011,7)的二进制是(111)(方便起见,我们将其写作(0111)),将它们每一位逐一比较,右起第一位为(1),第二位也为(1),由于(1011)第三位为(0,0111)第四位为(0),所以运算结果的第三位和第四位为(0)。最后结果就是(0011),即(11&7=3)

    (|)(或运算)

    概念

    或运算的运算符为(|)。当两个数进行或运算时,将其二进制进行操作,对于每一位,只要两个数中有一个这一位的值为(1),它的值就为(1),只有两个数这一位的值都是(0),它的值才为(0)。也就是说,(1|1=1,1|0=1,0|1=0,0|0=0)

    举例

    (11|7)为例。

    (11)的二进制是(1011),7的二进制是(0111),将它们每一位逐一比较,可得每一位两个数中都有至少一个值为(1)。最后结果就是(1111),即(11|7=15)

    ^(异或运算)

    概念

    异或运算的运算符为^。当两个数进行异或运算时,将其二进制进行操作,对于每一位,只有当两个数上这一位的数字不同,它的值才为(1),若值相同,则为(0)。也就是说,(1)^(1=0),(1)^(0=1),(0)^(1=1),(0)^(0=0)

    举例

    (11)^(7)为例。

    (11)的二进制是(1011),(7)的二进制是(0111),将它们每一位逐一比较,右起第一位和第二位上两个数值都为(1),所以结果上这两位为(0),而第三位和第四位上两个数值一个为(1)一个为(0),数字不同,所以结果上这两位为(1)。最后结果就是(1100),即(11)^(7=12)

    (sim)(取反运算)

    概念

    取反运算的运算符为(sim)。取反运算是一个单目运算符,只对一个数进行运算。当对一个数进行取反运算时,将其二进制进行操作,对于每一位,若原来的值为(1),则结果的值为(0),若原来的值为(0),则结果的值为(1),相当于取与原值相反的数。也就是说,(sim1=0,sim0=1)

    举例

    (sim11)为例。

    (11)的二进制是(1011),对每一位进行操作,由于右起第(1,2,4)位原值为(1),所以结果上这三位值为(0),由于右起第(3)位原值为(0),所以结果上这位值为(1)。最后结果就是(0100),即(sim11=4)

    (<<)(左移运算)

    概念

    左移运算的运算符为(<<)。当两个数进行左移运算时,设运算符左边的数为(x),右边的数为(y),则结果是(x)在二进制下向左移动(y)位所得的值,相当于(x)乘上(2^y)

    举例

    (11<<2)为例。

    (11)的二进制是(1011),将(11)在二进制下左移(2)位,可得(101100)。最后结果就是(101100),即(11<<2=44)

    (>>)(右移运算)

    概念

    右移运算的运算符为(>>)。当两个数进行右移运算时,设运算符左边的数为(x),右边的数为(y),则结果是(x)在二进制下向右移动y位所得的值,相当于(x)整除(2^y)

    举例

    (11>>2)为例。

    (11)的二进制是(1011),将(11)在二进制下右移(2)位,可得(10)。最后结果就是(10),即(11>>2=2)

    位运算的优先级

    (1:sim)

    (2:<<,>>)

    (3:&)

    (4:)^

    (5:|)

  • 相关阅读:
    POJ -- 3468
    HDOJ--1698
    简单的API应用
    Linux引导流程
    Python 实现网络爬虫小程序
    codeforce
    Count the string -- HDOJ 3336
    初次运行 Git 前的配置
    leetcode244- Shortest Word Distance II- medium
    leetcode243- Shortest Word Distance- easy
  • 原文地址:https://www.cnblogs.com/chenxiaoran666/p/bit_operation.html
Copyright © 2011-2022 走看看