004. 使用各种运算符进行计算
在C语言中,运算符用于执行各种数学和逻辑运算。以下是一些常见的运算符及其用法,并通过具体的表达式来展示如何计算它们的值。
1. 算术运算符
算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法和取模。
- 加法(
+
):
int a = 5 + 3; // a 的值为 8
- 减法(
-
):
int b = 10 - 4; // b 的值为 6
- 乘法(
*
):
int c = 7 * 2; // c 的值为 14
- 除法(
/
):
int d = 20 / 5; // d 的值为 4
float e = 20 / 3.0; // e 的值为 6.666666(注意浮点数除法)
- 取模(
%
):
int f = 20 % 3; // f 的值为 2(20 除以 3 的余数)
2. 关系运算符
关系运算符用于比较两个值,返回布尔值(0
表示假,非0
表示真)。
- 等于(
==
):
int g = (5 == 5); // g 的值为 1(真)
- 不等于(
!=
):
int h = (5 != 3); // h 的值为 1(真)
- 大于(
>
):
int i = (10 > 5); // i 的值为 1(真)
- 小于(
<
):
int j = (3 < 10); // j 的值为 1(真)
- 大于等于(
>=
):
int k = (10 >= 10); // k 的值为 1(真)
- 小于等于(
<=
):
int l = (3 <= 10); // l 的值为 1(真)
3. 逻辑运算符
逻辑运算符用于组合多个条件,返回布尔值。
- 逻辑与(
&&
):
int m = (5 > 3) && (10 < 20); // m 的值为 1(真)
- 逻辑或(
||
):
int n = (5 > 3) || (10 > 20); // n 的值为 1(真)
- 逻辑非(
!
):
int o = !(5 > 3); // o 的值为 0(假)
4. 位运算符
位运算符用于对整数的二进制位进行操作。
- 按位与(
&
):
int p = 5 & 3; // p 的值为 1(5 的二进制为 101,3 的二进制为 011,按位与结果为 001)
- 按位或(
|
):
int q = 5 | 3; // q 的值为 7(5 的二进制为 101,3 的二进制为 011,按位或结果为 111)
- 按位异或(
^
):
int r = 5 ^ 3; // r 的值为 6(5 的二进制为 101,3 的二进制为 011,按位异或结果为 110)
- 按位取反(
~
):
int s = ~5; // s 的值为 -6(5 的二进制为 101,取反后为 010,加上符号位为 -6)
- 左移(
<<
):
int t = 5 << 1; // t 的值为 10(5 的二进制为 101,左移一位后为 1010)
- 右移(
>>
):
int u = 5 >> 1; // u 的值为 2(5 的二进制为 101,右移一位后为 010)
5. 赋值运算符
赋值运算符用于将值赋给变量。
- 简单赋值(
=
):
int v = 10; // v 的值为 10
- 复合赋值运算符:
int w = 5;
w += 3; // 等价于 w = w + 3,w 的值为 8
w -= 2; // 等价于 w = w - 2,w 的值为 6
w *= 2; // 等价于 w = w * 2,w 的值为 12
w /= 3; // 等价于 w = w / 3,w 的值为 4
w %= 2; // 等价于 w = w % 2,w 的值为 0
6. 逗号运算符
逗号运算符用于将多个表达式组合在一起,返回最后一个表达式的值。
int x = (5, 10, 15); // x 的值为 15
综合示例
以下是一个综合使用各种运算符的C语言程序示例:
#include <stdio.h>
int main() {
int a = 5 + 3 * 2; // 算术运算,先乘后加
int b = (10 > 5) && (3 < 10); // 关系和逻辑运算
int c = 5 & 3; // 位运算
int d = 10;
d += 5; // 复合赋值运算
int e = (a, b, c); // 逗号运算
printf("a = %d\n", a); // 输出 a 的值
printf("b = %d\n", b); // 输出 b 的值
printf("c = %d\n", c); // 输出 c 的值
printf("d = %d\n", d); // 输出 d 的值
printf("e = %d\n", e); // 输出 e 的值
return 0;
}
输出结果
运行上述程序,输出结果如下:
a = 11
b = 1
c = 1
d = 15
e = 1
视频讲解
BiliBili: 视睿网络-哔哩哔哩视频 (bilibili.com)