- 算术运算符
- 自增、自减
- 赋值运算符
- 关系运算符
- 逻辑运算符
- 条件运算符
- 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++还提供了复合赋值运算符,将位运算与赋值操作结合在一起:
&=
:按位与后赋值|=
:按位或后赋值^=
:按位异或后赋值<<=
:左移后赋值>>=
:右移后赋值
Comments NOTHING