C语言学习笔记 - 运算符

运算符

在C语言中主要提供了算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符和杂项运算符。

算术运算符

运算符 描述 实例
+ 两个数相加 a + b = 20
- 两个数相减 a - b = 0
* 两个数相乘 a * b = 100
/ 两个数相除 a / b = 1
% 取模运算,整除后取余数 a % b = 0
++ 自增运算 a++ = 11
+– 自减运算 a– = 9

算术运算符

运算符 描述 实例
== 是否相等 a == b
>= 是否大于等于 a >= b
<= 是否小于等于 a <= b
!= 是否相等 a != b
> 是否大于 a > b
< 是否小于 a < b

逻辑运算符

运算符 描述 实例
&& 逻辑与运算 a && b
` `
逻辑非运算 !a

位运算符

运算符 描述 实例
& 二进制按位与运算符 a && b
| 二进制按位或运算符 a && b
^ 二进制按位异或运算符 a && b
~ 二进制一元运算符 a && b
>> 二进制右移运算符 a && b
<< 二进制左移运算符 a && b

& | ^
1. p = 0; q = 0; p & q = 0; p | q = 0; q ^ q = 0;
2. p = 0; q = 1; p & q = 0; p | q = 1; q ^ q = 1;
3. p = 1; q = 1; p & q = 1; p | q = 1; q ^ q = 0;
4. p = 1; q = 0; p & q = 0; p | q = 1; q ^ q = 1;

~
int a = 60;
a = ~a;
取反前: 0011 1100 = 60;
取反后: 1100 0011 = 195

>>
int a = 60;
a = a >> 2;
位移前:0011 1100 = 60;
位移后:0000 1111 = 15;

<<
int a = 60;
a = a << 2;
位移前:0011 1100 = 60;
位移后:1111 0000 = 240;

规律

  • 按位与(&):有0,都取0,否则取1;
  • 按位或(|):有1,都取1,否则取0;
  • 异或(^):相同取0,不同取1;
  • 取反(~):将0变1,将1变0;
  • 左移(<<): 二进制位向左移动指定位数;
  • 右移(>>): 二进制位向右移动指定位数;

赋值运算符

运算符 描述 实例
= 赋值运算 a = 2
+= 加且赋值运算 a += 2即 a = a + 2
-= 减且赋值运算 a -= 2即 a = a - 2
*= 乘且赋值运算 a = 2即 a = a 2
/= 除且赋值运算 a /= 2即 a = a / 2
%= 求模且赋值运算 a %= 2即 a = a % 2
&= 按位与且赋值运算 a &= 2即 a = a & 2
|= 按位或且赋值运算 `a
^= 按位异步且赋值运算 a ^= 2即 a = a ^ 2
>>= 右移且赋值运算 a >>= 2即 a = a >> 2
<<= 左移且赋值运算 a <<= 2即 a = a << 2

杂项运算符

运算符 描述 实例
sizeof() 计算变量大小 sizeof(a)
& 取地址符 &a; 得到变量的内存地址
* 指向变量 *a; 将指向一个变量。
?: 三目运算符 a > b ? a : b

你可能感兴趣的:(C)