当前位置:首页 C++ > 正文

C++位操作与、或、非、异或、取反详解

作者:野牛程序员:2023-07-13 17:39:32 C++阅读 2587

当涉及到位操作时,C++提供了一些位运算操作符来进行位操作,包括与(&)、或(|)、非(~)、异或(^)和取反(<<)。下面是对这些操作符的详细解释:

  1. 与(&)操作符:

    • 描述:将两个操作数的对应位进行逻辑与操作。

    • 示例:

    int a = 5;       // 二进制表示为 0101
    int b = 3;       // 二进制表示为 0011
    int result = a & b; // 二进制表示为 0001,即十进制的1
  2. 或(|)操作符:

    • 描述:将两个操作数的对应位进行逻辑或操作。

    • 示例:

    int a = 5;       // 二进制表示为 0101
    int b = 3;       // 二进制表示为 0011
    int result = a | b; // 二进制表示为 0111,即十进制的7
  3. 非(~)操作符:

    • 描述:将操作数的每个位进行逻辑非操作(取反)。

    • 示例:

    unsigned int a = 5;    // 二进制表示为 0000 0000 0000 0000 0000 0000 0000 0101
    unsigned int result = ~a; // 二进制表示为 1111 1111 1111 1111 1111 1111 1111 1010,即十进制的4294967290(取决于系统上的int的大小)

  4. 异或(^)操作符:

    • 描述:将两个操作数的对应位进行逻辑异或操作。

    • 示例:

      1. int a = 5;       // 二进制表示为 0101
        int b = 3;       // 二进制表示为 0011
        int result = a ^ b; // 二进制表示为 0110,即十进制的6


  5. 左移(<<)操作符:

    • 描述:将操作数的所有位向左移动指定的位数。

    • 示例:

int a = 5;       // 二进制表示为 0000 0000 0000 0000 0000 0000 0000 0101
int result = a << 2; // 二进制表示为 0000 0000 0000 0000 0000 0000 0001 0100,即十进制的20

这些位操作符可以用于位掩码、位标志和其他需要直接操作二进制表示的数据的场景。请注意,这些操作符可能因为数据类型的不同而产生不同的结果,因此在使用时要小心数据类型和位宽。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击