C语言——操作符详解(上)

C语言——操作符详解(上)

操作符的分类

C语言中的操作符主要分为算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。我将分成三篇文章为大家详细介绍以上所有操作符。

操作符详解:

算术操作符

算术操作符主要有以下五种 + - * / %。下面为部分代码示例
+

#include
int main()
{
	int a = 20;
	int b = 10;
	printf("%d\n", a + b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第1张图片
-

#include
int main()
{
	int a = 20;
	int b = 10;
	printf("%d\n", a - b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第2张图片
*

#include
int main()
{
	int a = 20;
	int b = 10;
	printf("%d\n", a * b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第3张图片
%

#include
int main()
{
	int a = 20;
	int b = 10;
	printf("%d\n", a % b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第4张图片
/

#include
int main()
{
	int a = 20;
	int b = 10;
	printf("%d\n", a / b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第5张图片
算术操作符的注意事项:

  1. 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
  2. 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。如:
#include
int main()
{
	int a = 20;
	float b = 3.0;
	printf("%.2f\n", a / b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第6张图片
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。

移位操作符

移位操作符主要包含有:<<( 左移操作符) >> (右移操作符)
注意:移位操作符的主要对象为整数类型
在学习移位操作符之前,我们需要先了解进制的表达形式,整数的2进制表达形式有3种,分别为原码、反码、补码。内存中存储的起始是:补码的二进制。所以在参与移位操作的时候,移动后都是补码。
按照一个数的正负,直接写出它的二进制表示形式得到的就是原码。
正数
正数的原码、反码、补码是相同的
负数
负数的反码和补码需要通过计算得到结果
①负数的反码是原码的符号位不变,其他位按位取反,就是反码
②负数的补码是反码+1
③0表示为正,1表示为负

由于整型为4个字节,占32个bit。
eg:

int a=10;
//原码00000000000000000000000000001010
//反码00000000000000000000000000001010
//补码00000000000000000000000000001010
int a=-10;
//原码:10000000000000000000000000001010
//补码:11111111111111111111111111110101
//反码:11111111111111111111111111110110

左移操作符

左移操作符的移位规则为:左边抛弃,右边补0

#include 
int main()
{
	int a = 10;
	int b = a << 1;
	printf("%d\n", b);
	return 0;
}

详解过程:
C语言——操作符详解(上)_第7张图片
运行结果:
C语言——操作符详解(上)_第8张图片
对于负数来说‘

#include 
int main()
{
	int a = -10;
	int b = a << 1;
	printf("%d\n", b);
	return 0;
}

详解过程:
C语言——操作符详解(上)_第9张图片
运行结果:
C语言——操作符详解(上)_第10张图片

右移操作符

右移操作符分为两种,分别是:
①、逻辑移位:左边用0填充,右边丢弃
②、算术移位:左边用原该值的符号位填充,右边丢弃

#include 
int main()
{
	int a = -10;
	int b = a >>1;
	printf("%d\n", b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第11张图片

位操作符

位操作符分别有:

& //按位与
| //按位或
^ //按位异或

他们也是针对二进制位进行计算的
注:他们的操作数必须是整数。
①、 &
规则为:对应的二进制位有0,则为0,两个同时为1,才为1

#include
int main()
{
	int a = 2;
	int b = -1;
	printf("%d\n", a & b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第12张图片
②、|
规则为:对应的二进制位有1则为1,两个同时为0则为0

#include
int main()
{
	int a = 3;
	int b = -5;
	printf("%d\n", a | b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第13张图片

③、^
规则为:按2进制位异或,对应的二进制位:相同为0,相异为1

#include
int main()
{
	int a = 3;
	int b = -5;
	printf("%d\n", a ^ b);
	return 0;
}

运行结果:
C语言——操作符详解(上)_第14张图片

你可能感兴趣的:(C,c语言,c++,算法)