算术运算符
| 运算符 | 描述 |
|---|
| + | 把两个操作数相加 |
| - | 从第一个操作数中减去第二个操作数 |
| * | 把两个操作数相乘 |
| / | 分子除以分母 |
| % | 取模运算符,整除后的余数 |
| ++ | 自增运算符,整数值增加 1 |
| -- | 自减运算符,整数值减少 1 |
int main() {
int n = 1;
int m = 1;
for (int i = 0; i < 10; i++) {
printf("数据n: %d \n", ++n);
printf("数据m: %d \n", m++);
}
return 0;
}
关系运算符
| 运算符 | 描述 |
|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真。 |
| != | 检查两个操作数的值是否相等,如果不相等则条件为真。 |
| > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真。 |
| < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真。 |
| >= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件为真。 |
| <= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件为真。 |
逻辑运算符
| 运算符 | 描述 |
|---|
| && | 称为逻辑与运算符。如果两个操作数都 true,则条件为 true |
| || | 称为逻辑或运算符。如果两个操作数中有任意一个 true,则条件为 true。 |
| ! | 称为逻辑非运算符。用来逆转操作数的逻辑状态,如果条件为 true 则逻辑非运算符将使其为 false。 |
赋值运算符
| 运算符 | 描述 |
|---|
| = | 简单的赋值运算符,把右边操作数的值赋给左边操作数 |
| += | 加且赋值运算符,把右边操作数加上左边操作数的结果赋值给左边操作数 |
| -= | 减且赋值运算符,把左边操作数减去右边操作数的结果赋值给左边操作数 |
| *= | 乘且赋值运算符,把右边操作数乘以左边操作数的结果赋值给左边操作数 |
| /= | 除且赋值运算符,把左边操作数除以右边操作数的结果赋值给左边操作数 |
| %= | 求模且赋值运算符,求两个操作数的模赋值给左边操作数 |
| <<= | 左移且赋值运算符 |
| >>= | 右移且赋值运算符 |
| &= | 按位与且赋值运算符 |
| ^= | 按位异或且赋值运算符 |
| |= | 按位或且赋值运算符 |
位运算符
| 运算符 | 描述 |
|---|
| & | 按位与操作,按二进制位进行"与"运算。 |
| | | 按位或运算符,按二进制位进行"或"运算。 |
| ^ | 异或运算符,按二进制位进行"异或"运算。 |
| ~ | 取反运算符,按二进制位进行"取反"运算。 |
| << | 二进制左移运算符。将一个运算对象的各二进制位全部左移若干位(左边的二进制位丢弃,右边补0)。 |
| >> | 二进制右移运算符。将一个数的各二进制位全部右移若干位,正数左补0,负数左补1,右边丢弃。 |
#include <stdio.h>
void printBinary(int num);
int main() {
int n = 1;
int m = 2;
printf("数据&: %d \n", (n & m));
printf("数据&&: %d \n", (n && m));
printf("n数据:\n");
printBinary(n);
printf("m数据:\n");
printBinary(m);
printf("& 按位与操作\n");
printBinary(n & m);
printf("| 按位或运算符\n");
printBinary(n | m);
printf("^ 按二进制位进行异或\n");
printBinary(n ^ m);
printf("~ 按二进制位进行取反 \n");
printBinary(n ^ m);
return 0;
}
void printBinary(int num) {
for (int i = sizeof(num) * 8 - 1; i >= 0; i--) {
printf("%d", (num >> i) & 1);
}
printf("\n");
}