• 基础位运算符


    1.按位与

    ​ 符号: &

    ​ 说明:把参与运算的两个数对应的二进制位相与。只有两个二进制均为1时,结果的对应位才是1,否则为0.

    ​ 例子:当 5&9 时:

    ​ 5的二进制:0000 0101;9的二进制:0000 1001;


    2.按位或

    ​ 符号: |

    ​ 说明:把参与运算的两个数对应的二进制位相或。只要对应的两个二进制位有一个为1时,其结果就为1.

    ​ 例子:当 5|9 时:


    3.按位异或 (疑惑)

    ​ 符号: ^ (xor)

    ​ 说明:把参与运算的两个数对应的二进制位相异或,当对应的二进制位上的数据字不相同时,结果对应为1,否则为0.

    ​ 一些简单的例子:1 xor 1 = 0, 1 xor 0 = 1, 0 xor 0 = 0, 0 xor 1 = 1

    ​ 例子:

    1596370783693


    4.取反

    ​ 符号:~

    ​ 说明:把运算数的各个二进制按位求反。

    ​ 例子:

    1596371292876


    5.移位

    • 左移(<<)

      说明:把"<<"左边的运算数的各二进制位向左移若干位,"<<"右边的数是指定移动的位数,高位丢弃,低位补0。

      例子:a<<4指把a的各二进位向左移动4位,如 a = 0000 0011(十进制为3),左移4位后为 0011 0000(十进制为48)。

    • 右移(>>)

      说明:把">>"左边的运算数的各二进制位全部右移若干位,">>"右边的数是指定移动的位数。

      例子:设 (a=15)(a>>2) 表示把 0000 1111 右移为 0000 0011(十进制为3)

      算数右移等于除以 2 向下取整,((-3) >> 1 = -2)(3 >> 1 = 1)

      整数除以 2 在 C++ 中实现为 “除以 2 向零取整”,((-3)/2=-1)(3/2=1)

    • 简便的运算方法:

      [a<<n =a*2^n ]

      [a>>n=a*frac{1}{2^n} ]


    说明

    ​ 需要说明的是,对于有符号数,在右移时,符号位将随同移动。当操作数为正数时,最高位为 0 ,而为负数时,最高位为 1 。最高位是补 0 或补 1 取决于编译系统的规定。

    EdisonBa

    2020.8.16

  • 相关阅读:
    如何使用SQL BETWEEN运算符选择指定范围内的值
    如何使用SQL IS NULL和IS NOT NULL运算符
    在Java 中重写equals 和hashCode 时应该考虑哪些问题?
    如何使用SQL NOT运算
    SQL INNER JOIN查询来自两个或多个表的数据
    如何使用SQL IN运算符将列中的值与一组值进行比较
    如何在Java中拆分字符串
    如何使用SQL LIKE运算符来测试表达式是否与模式匹配
    MIT6.830 lab1
    Unity Shader:(九)基础纹理
  • 原文地址:https://www.cnblogs.com/EdisonBa/p/13423100.html
Copyright © 2020-2023  润新知