C++运算符

C++ 中的运算符用于执行各种操作,例如算术运算、逻辑运算、位运算等。以下是一些常见的 C++ 运算符以及它们的详细说明和示例:

  1. 算术运算符:

    • +:加法运算符,用于两个操作数相加。
    • -:减法运算符,用于从第一个操作数中减去第二个操作数。
    • *:乘法运算符,用于两个操作数相乘。
    • /:除法运算符,用于将第一个操作数除以第二个操作数。
    • %:取模运算符,用于获取除法的余数。

    示例:

   int a = 5;
   int b = 2;
   int c = a + b;  // c = 7
   int d = a - b;  // d = 3
   int e = a * b;  // e = 10
   int f = a / b;  // f = 2
   int g = a % b;  // g = 1
  1. 关系运算符:

    • ==:等于运算符,检查两个操作数是否相等。
    • !=:不等于运算符,检查两个操作数是否不相等。
    • >:大于运算符,检查第一个操作数是否大于第二个操作数。
    • <:小于运算符,检查第一个操作数是否小于第二个操作数。
    • >=:大于等于运算符,检查第一个操作数是否大于或等于第二个操作数。
    • <=:小于等于运算符,检查第一个操作数是否小于或等于第二个操作数。

    示例:

   int a = 5;
   int b = 3;
   bool result1 = (a == b);  // false
   bool result2 = (a != b);  // true
   bool result3 = (a > b);   // true
   bool result4 = (a < b);   // false
   bool result5 = (a >= b);  // true
   bool result6 = (a <= b);  // false
  1. 逻辑运算符:

    • &&:逻辑与运算符,当两个操作数都为真时,结果为真。
    • ||:逻辑或运算符,当两个操作数中至少有一个为真时,结果为真。
    • !:逻辑非运算符,用于取反操作数的值。

    示例:

   bool a = true;
   bool b = false;
   bool result1 = (a && b);  // false
   bool result2 = (a || b);  // true
   bool result3 = !a;        // false
  1. 位运算符:

    • &:按位与运算符,对两个操作数的每个位执行与操作。
    • |:按位或运算符,对两个操作数的每个位执行或操作。
    • ^:按位异或运算符,对两个操作数的每个位执行异或操作。
    • ~:按位取反运算符,对操作数的每个位执行取反操作。
    • <<:左移运算符,将操作数的每个位向左移动指定的位数。
    • >>:右移运算符,将操作数的每个位向右移动指定的位数。

    示例:

   int a = 5;  // 二进制表示为 0101
   int b = 3;  // 二进制表示为 0011
   int result1 = (a & b);  // 0001 (1)
   int result2 = (a | b);  // 0111 (7)
   int result3 = (a ^ b);  // 0110 (6)
   int result4 = ~a;       // 1010 (-6 in two's complement)
   int result5 = (a << 2);4. 赋值运算符:
   - `=`:赋值运算符,将右侧的值赋给左侧的变量。
   - `+=`:加法赋值运算符,将右侧的值与左侧的变量相加,并将结果赋给左侧的变量。
   - `-=`:减法赋值运算符,从左侧的变量中减去右侧的值,并将结果赋给左侧的变量。
   - `*=`:乘法赋值运算符,将右侧的值与左侧的变量相乘,并将结果赋给左侧的变量。
   - `/=`:除法赋值运算符,将左侧的变量除以右侧的值,并将结果赋给左侧的变量。
   - `%=`:取模赋值运算符,将左侧的变量取模右侧的值,并将结果赋给左侧的变量。

示例:

   int a = 5;
   int b = 2;
   a += b;  // a = 7
   a -= b;  // a = 5
   a *= b;  // a = 10
   a /= b;  // a = 5
   a %= b;  // a = 1

其中位运算符用于对二进制数的位进行操作。它们直接操作操作数的每个位,而不考虑它们的整体值。以下是常见的位运算符及其详细解释:

  1. 按位与运算符 &
    对两个操作数的每个位执行与操作,只有在两个操作数对应位都为1时,结果的对应位才为1,否则为0。

    示例:

   int a = 5;  // 二进制表示为 0101
   int b = 3;  // 二进制表示为 0011
   int result = a & b;  // 0001 (1)
  1. 按位或运算符 |
    对两个操作数的每个位执行或操作,只要两个操作数对应位中至少有一个位为1,则结果的对应位就为1,否则为0。

    示例:

   int a = 5;  // 二进制表示为 0101
   int b = 3;  // 二进制表示为 0011
   int result = a | b;  // 0111 (7)
  1. 按位异或运算符 ^
    对两个操作数的每个位执行异或操作,当两个操作数对应位的值不同时,结果的对应位为1,否则为0。

    示例:

    int a = 5;  // 二进制表示为 0101
   int b = 3;  // 二进制表示为 0011
   int result = a ^ b;  // 0110 (6)
  1. 按位取反运算符 ~
    对操作数的每个位执行取反操作,将1变为0,将0变为1。

    示例:

   int a = 5;  // 二进制表示为 0101
   int result = ~a;  // 1010 (-6 in two's complement)
  1. 左移运算符 <<
    将左操作数的所有位向左移动指定的位数,右侧用0填充。左移操作可看作是将操作数乘以2的幂。

    示例:

   int a = 5;  // 二进制表示为 0101
   int result = a << 2;  // 10100 (20)
  1. 右移运算符 >>
    将左操作数的所有位向右移动指定的位数,根据左操作数的符号位用0或1进行填充。右移操作可看作是将操作数除以2的幂。

    示例:

   int a = 20;  // 二进制表示为 10100
   int result = a >> 2;  // 00101 (5)

这些位运算符可用于处理位级别的操作,如掩码操作、位操作标志等。它们在处理底层数据表示、位运算优化和位控制等方面非常有用。

你可能感兴趣的:(C++,c++,算法)