我们从小开始学习数学,在数学中常常用用到公式,由已知数得出一个未知数。而在C语言中我们借助操作符完成数据的运算操作。接下来,我将给大家介绍一下在C语言中的操作符。
1.算术操作符
操作符 | 名称 | 作用 | 举例 | 结果 |
+ | 加 | 加法运算 | int a = 1+2; | a = 3; |
- | 减 | 减法运算 | int a = 3-1; | a = 2; |
* | 乘 | 乘法运算 | int a = 2*2; | a = 4; |
/ | 除 | 除法运算 | int a = 6/2; | a = 3; |
% | 取余 | 求余数 | int a = 5%2; | a = 1; |
2.位移操作符
操作符 | 名称 | 举例 | 结果 |
<< | 左位移 | 1<<1 1<<2 | 2 4 |
>> | 右位移 | 4>>1 8>>1 | 2 4 |
首先我们应明确,位移移的是二进制位。求解的步骤为,应先将概述转换为二进制的数,再将得到的二进制数整体左移或右移指定位数,超出范围的数字略去,不足的位数用0补充,得到一个新的二进制数,最后将二进制数转换为十进制数即可。
以int类型数据举例:int类型数据为4字节,也就是共有32位二进制位。整型数字1,对应的二进制数为00000000000000000000000000000001。1<<1,即数字1左移1位,得到的新的二进制数为00000000000000000000000000000010,转换位十进制数为2。1<<2,即数字1左移2位,得到的新的二进制数为00000000000000000000000000000100,转换为十进制数为4。右移类似。
3.位操作符
操作符 | 名称 | 举例 | 结果 |
& | 且位操作符 | 6&5 | 4 |
| | 或位操作符 | 6|5 | 7 |
^ | 异或位操作符 | 6^5 | 3 |
位操作符中的位指的也是二进制位。故求解时,我们也应首先将操作符两侧的数字转换位二进制数。根据具体的操作符运算,得出一个新的二进制数。再将该二进制数转换为十进制即可。
&举例:6&5。(省略掉前面的一堆0,只保留后面的部分)转换为2进制数为 110&101.&要求两数对应的位数都为1即为1,其它情形都为0。故新的二进制数为100,转换为十进制数为4。
| 举例:6|5。(省略掉前面的一堆0,只保留后面的部分)转换为2进制数为 110|101. |要求两数对应的位数有一个为1就为1,其它情形都为0。故新的二进制数为111,转换为十进制数为7。
^举例:6^5。(省略掉前面的一堆0,只保留后面的部分)转换为2进制数为 110^101.^要求两数对应的位数有不同就为1,相同就为0。故新的二进制数为011,转换为十进制数为3。
4.赋值操作符
操作符 | 举例 --- (int a = 1;) | 结果 |
= | a = 1 | a=1 |
+= | a += 1; ---> a=a+1; | a=2 |
-= | a -= 1; ---> a=a-1; | a=0 |
*= | a *= 2; ---> a=a*2; | a=2 |
/= | a /=2; ---> a=a/2; | a=0 |
&= | a &=2; --->a=a&2; | a=0 |
|= | a |=2; ---> a=a|2; | a=3 |
^= | a ^=2; ---> a=a^2; | a=3 |
<<= | a << 1; ---> a=a<<1; | a=2 |
>>= | a >> 1; ---> a=a>>1; | a=0 |
5.单目操作符
操作符 | 作用 | 举例 | 结果 |
! | 逻辑反操作 | ||
- | 负值 | ||
+ | 正值 | ||
& | 取地址 | ||
sizeof | 操作数的类型长度(以字节为单位) | ||
~ | 对一个数的二进制按位取反 | ||
-- | 前置、后置-- | ||
++ | 前置、后置++ | ||
* | 间接访问操作符(解引用操作符) | ||
(类型) | 强制类型转换 |
6.关系操作符
操作符 | 作用 |
> | 用于测试“大于” |
>= | 用于测试“大于等于” |
< | 用于测试“小于” |
<= | 用于测试“小于等于” |
!= | 用于测试“不相等” |
== | 用于测试“相等” |
7.逻辑操作符
操作符 | 作用 |
&& | 逻辑与 |
|| | 逻辑或 |
8.条件操作符
操作符 | 举例 | 结果 |
exp1 ? exp2 : exp3 |
有关运算符的基本内容已写完,具体介绍内容还待补充....若文章内容有错误,欢引指出,谢谢~~