C++ 位操作

C++ 位操作

计算机无法理解我们交流时使用的高级语言。因此,存在一种标准方法,通过该方法将任何发给计算机的指令转换为计算机可以理解的方式。在基本层面上,每个指令都被转换为一些称为比特的数字信息。一系列比特表示这是一条特定的指令。

C++ 位操作

位被定义为以数字符号存储数据的基本单元。

有两个值来表示它如下 –

1 – 它表示信号存在或为True

0 – 它表示信号不存在或为False

位表示任何指令的逻辑状态。一系列位有一个基数为2。因此,如果我们说有一系列二进制数字,它从左到右读取,而2的幂增加。

C++ 位操作

所以,在了解位的基础知识之后,让我们了解在C++中如何处理位。

位操作

位操作被定义为对n位数字的位级进行一些基本操作。它是一种高速和原始的方法,因为它直接在机器端工作。

有了这个基础,让我们进入C++中位操作的基础知识。

  • 逻辑与

逻辑与接受两个操作数,如果它们都为真则返回真。符号是&&。

让我们看一下逻辑与运算符的真值表。

C++ 位操作

C++程序

#include 
using namespace std;

int main() {
        int a = 5;
        int b = 9;

        // false && false = false
        cout << ((a == 0) && (a > b)) << endl;

        // false && true = false
        cout << ((a == 0) && (a < b)) << endl;

        // true && false = false
     cout << ((a == 5) && (a > b)) << endl;

        // true && true = true
        cout << ((a == 5) && (a < b)) << endl;

      return 0;
}

输出:

C++ 位操作

  • 逻辑或(Logical OR)

逻辑或运算符在两个操作数中的任意一个输入为高时,给出高的输出。符号为||

让我们来看一下逻辑或运算符的真值表。

C++ 位操作

在这里我们可以看到第一行。输入A和B都是低电平,这导致输出是0(低电平)。

C++程序

#include 
using namespace std;

int main() {
    int a = 5;
    int b = 9;

    // false && false = false
    cout << ((a == 0) || (a > b)) << endl;

    // false && true = true
    cout << ((a == 0) || (a < b)) << endl;

    // true && false = true
    cout << ((a == 5) || (a > b)) << endl;

    // true && true = true
    cout << ((a == 5) || (a < b)) << endl;

    return 0;
}

输出:

C++ 位操作

  • 逻辑非

逻辑非只取一个操作数并将其反转。如果操作数是低的,它将使其变为高的,反之亦然。符号为!。

让我们来看看逻辑非运算符的真值表。

C++ 位操作

C++程序

#include 
using namespace std;

int main() {
     int a = 5;

     // !false = true
     cout << !(a == 0) << endl;

     // !true = false
     cout << !(a == 5) << endl;

     return 0;
}

输出:

C++ 位操作

  • 左移运算符

左移运算符接受一个操作数,并且左操作数的值向左移动指定右操作数位数的位。

它的符号是<<

C++程序

#include
using namespace std;
int main()
{
    // a = 5(00000101), b = 9(00001001)
    unsigned char a = 5, b = 9;

    // The result is 00001010
    cout << "a<<1: "<<  (a<<1) << "\n";

    // The result is 00010010
    cout << "b<<1: " <<  (b<<1);
    return 0;
}

输出:

C++ 位操作

  • 位右移运算符

位右移运算符接受一个操作数,其右操作数的值将被向右移动指定的位数。

它的符号为 >>

C++程序

#include 
using namespace std;
int main()
{
    // a = 5(00000101), b = 9(00001001)
    unsigned char a = 5, b = 9;

    // The result is 00000010

    cout<< "a>>1: " <<  (a >> 1) << "\n";

    // The result is 00000100
    cout<< "b>>1: " <<  (b >> 1);
    return 0;
}

输出:

C++ 位操作

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程