1. 算术运算符:用于进行算术运算,包括加、减、乘、除、取余等。
运算符描述举例
+加法运算符,用于两个操作数相加a + b = 15
减法运算符,用于从一个操作数中减去另一个操作数a – b = -5
*乘法运算符,用于两个操作数相乘a * b = 50
/除法运算符,用于将一个操作数除以另一个操作数b / a = 2
%取余运算符,用于对两个操作数取模b % a = 0
++自增运算符,用于将操作数的值加1++a 表示a的值加1
自减运算符,用于将操作数的值减1–a 表示a的值减1
  1. 关系运算符:用于比较两个值的大小,结果为真或假。
运算符描述举例
==检查两个操作数是否相等,如果相等则条件为真(a == b)为假
!=检查两个操作数是否不相等,如果不相等则条件为真(a != b)为真
>检查左边操作数是否大于右边操作数,如果是,则条件为真(a > b)为假
<检查左边操作数是否小于右边操作数,如果是,则条件为真(a < b)为真
>=检查左边操作数是否大于或等于右边操作数,如果是,则条件为真(a >= b)为假
<=检查左边操作数是否小于或等于右边操作数,如果是,则条件为真(a <= b)为真
  1. 逻辑运算符:用于对两个或以上的条件进行逻辑运算,结果为真或假。
运算符描述举例
&&逻辑与运算符,如果两个操作数都非零,则条件为真(a && b)为假,因为a为零
||逻辑或运算符,如果两个操作数中有任意一个非零,则条件为真(a || b)为真,因为b为非零
!逻辑非运算符,用于反转操作数的逻辑状态!(a && b)为真,因为a && b为假,则!(a && b)为真
  1. 位运算符:用于对二进制数据进行位操作,可以实现移位、按位与、按位或、按位异或等运算。
运算符描述举例
&按位与运算符,对二进制数进行与运算a & b = 12,二进制数1100 & 1010 = 1000
|按位或运算符,对二进制数进行或运算a | b = 15,二进制数1100 | 1010 = 1111
^按位异或运算符,对二进制数进行异或运算a ^ b = 3,二进制数1100 ^ 1010 = 0010
~按位取反运算符,将操作数的二进制位取反~a = -61,(~1100 = 0011)补码 = -0011
<<左移运算符,将操作数的二进制位向左移动指定位数a << 2 = 48,二进制数1100 << 2 = 110000
>>右移运算符,将操作数的二进制位向右移动指定位数a >> 2 = 3,二进制数1100 >> 2 = 11
  1. 赋值运算符:用于将一个值赋给另一个变量。
运算符描述举例
=简单的赋值运算符C = A + B
+=加和赋值运算符C += A
-=减和赋值运算符C -= A
*=乘和赋值运算符C *= A
/=除和赋值运算符C /= A
%=模和赋值运算符C %= A
<<=左移和赋值运算符C <<= 2
>>=右移和赋值运算符C >>= 2
&=按位与和赋值运算符C &= 2
^=按位异或和赋值运算符C ^= 2
|=按位或和赋值运算符C | = 2

以下是一些示例:

int a = 21;int b = 10;int c;c = a + b; // c的值为31c = a - b; // c的值为11c = a * b; // c的值为210c = a / b; // c的值为2c = a % b; // c的值为1c = ++a;  // a的值变为22,c的值为22c = --b;  // b的值变为9,c的值为9if(a == b) {...}  // 判断a是否等于b,如果是执行括号中的代码块if(a != b) {...}  // 判断a是否不等于b,如果是执行括号中的代码块if(a > b) {...}  // 判断a是否大于b,如果是执行括号中的代码块if(a < b) {...}  // 判断a是否小于b,如果是执行括号中的代码块if(a >= b) {...} // 判断a是否大于等于b,如果是执行括号中的代码块if(a <= b) {...} // 判断a是否小于等于b,如果是执行括号中的代码块int x = 5;int y = 8;if(x && y) {...} // 满足两个条件都为真,则执行括号中的代码块if(x || y){...}  // 满足其中任意一个条件为真,则执行括号中的代码块if(!(x && y)) {...} // 反转(x && y)的逻辑状态,如果为假,则执行括号中的代码块unsigned int a = 0x5a5a5a5a; // 0x5a5a5a5a的二进制为:01011010 01011010 01011010 01011010unsigned int b = 0xa5a5a5a5; // 0xa5a5a5a5的二进制为:10100101 10100101 10100101 10100101unsigned int c = a & b;  // 二进制位按位与运算,得到的结果为:00000000 00000000 00000000 00000000unsigned int d = a | b;  // 二进制位按位或运算,得到的结果为:11111111 11111111 11111111 11111111unsigned int e = a ^ b;  // 二进制位按位异或运算,得到的结果为:11111111 11111111 11111111 11111111unsigned int f = ~a;     // 二进制位取反运算,得到的结果为:10100101 10100101 10100101 10100101(补码形式)unsigned int g = a << 2; // 将01011010 01011010 01011010 01011010向左移动2位,得到的结果为:01101010 10101001 01011010 10100000unsigned int h = a >> 2; // 将01011010 01011010 01011010 01011010向右移动2位,得到的结果为:00010101 01010101 01011010 10101101int i = 10;int j = 5;i += j;  // i的值变为15i -= j;  // i的值变为10i *= j;  // i的值变为50i /= j;  // i的值变为2i %= j;  // i的值变为0unsigned int k = 0x5a; // 0x5a的二进制为:01011010k <<= 2;  // 将01011010向左位移动两位,得到的结果为: 01101000(0x68)