C++之数据处理

星空物语 发布于 27 天前 45 次阅读


  • 算术运算符
    • 自增、自减
  • 赋值运算符
  • 关系运算符
  • 逻辑运算符
  • 条件运算符
  • sizeof运算符
  • 位运算符

自增、自减

j= i++;
//等价于
j=i;
i=i+1;
j= ++i;
//等价于
i=i+1;
j=i;
//自减运算符同理

位运算符

按位与 & 、按位或 |、按位异或^、按位取反~、左移位<<、右移位>>。

在C++中,位运算符用于直接操作整数的二进制位。这些运算符在处理底层数据、优化性能或实现特定算法时非常有用。以下是C++中常见的位运算符及其详细说明:

1. 按位与(&

  • 功能:对两个操作数的每个对应位执行逻辑与操作。只有当两个位都为1时,结果位才为1,否则为0。
int a = 5;    // 二进制: 0101
int b = 3;    // 二进制: 0011
int c = a | b; // 结果: 0111 (十进制7)

2. 按位或(|

  • 功能:对两个操作数的每个对应位执行逻辑或操作。只要有一个位为1,结果位就为1,否则为0。
  • 示例
int a = 5;    // 二进制: 0101
int b = 3;    // 二进制: 0011
int c = a | b; // 结果: 0111 (十进制7)

3. 按位异或(^

  • 功能:对两个操作数的每个对应位执行逻辑异或操作。当两个位不同时,结果位为1,否则为0。
int a = 5;    // 二进制: 0101
int b = 3;    // 二进制: 0011
int c = a ^ b; // 结果: 0110 (十进制6)

4. 按位取反(~

  • 功能:对操作数的每个位执行逻辑取反操作。1变为0,0变为1。
  • 示例
int a = 5;    // 二进制: 0101
int b = ~a;   // 结果: 1010 (补码表示,具体值取决于整数类型的大小)

5. 左移(<<

  • 功能:将操作数的所有位向左移动指定的位数。右侧空出的位用0填充。
  • 示例
int a = 5;    // 二进制: 0101
int b = a << 1; // 结果: 1010 (十进制10)

6. 右移(>>

  • 功能:将操作数的所有位向右移动指定的位数。对于无符号数,左侧空出的位用0填充;对于有符号数,左侧空出的位用符号位填充(即算术右移)。
  • 示例
int a = 5;    // 二进制: 0101
int b = a >> 1; // 结果: 0010 (十进制2)

7. 复合赋值运算符

C++还提供了复合赋值运算符,将位运算与赋值操作结合在一起:

  • &=:按位与后赋值
  • |=:按位或后赋值
  • ^=:按位异或后赋值
  • <<=:左移后赋值
  • >>=:右移后赋值

此作者没有提供个人介绍
最后更新于 2025-02-14