C语言——操作符详解(上)-创新互联
- 操作符的分类
- 操作符详解:
- 算术操作符
- 移位操作符
- 左移操作符
- 右移操作符
- 位操作符
C语言中的操作符主要分为算术操作符、移位操作符、位操作符、赋值操作符、单目操作符、关系操作符、逻辑操作符、条件操作符、逗号表达式、下标引用、函数调用和结构成员。我将分成两篇文章为大家详细介绍以上所有操作符。
操作符详解: 算术操作符算术操作符主要有以下五种+ - * / %。下面为部分代码示例
①+
#includeint main()
{int a = 20;
int b = 10;
printf("%d\n", a + b);
return 0;
}
运行结果:
②-
#includeint main()
{int a = 20;
int b = 10;
printf("%d\n", a - b);
return 0;
}
运行结果:
③*
#includeint main()
{int a = 20;
int b = 10;
printf("%d\n", a * b);
return 0;
}
运行结果:
④%
#includeint main()
{int a = 20;
int b = 10;
printf("%d\n", a % b);
return 0;
}
运行结果:
⑤/
#includeint main()
{int a = 20;
int b = 10;
printf("%d\n", a / b);
return 0;
}
运行结果:
算术操作符的注意事项:
- 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。
- 对于 / 操作符如果两个操作数都为整数,执行整数除法。而只要有浮点数执行的就是浮点数除法。如:
#includeint main()
{int a = 20;
float b = 3.0;
printf("%.2f\n", a / b);
return 0;
}
运行结果:
3. % 操作符的两个操作数必须为整数。返回的是整除之后的余数。
移位操作符主要包含有:<<( 左移操作符) >>(右移操作符)
注意:移位操作符的主要对象为整数类型
在学习移位操作符之前,我们需要先了解进制的表达形式,整数的2进制表达形式有3种,分别为原码、反码、补码。内存中存储的起始是:补码的二进制。所以在参与移位操作的时候,移动后都是补码。
按照一个数的正负,直接写出它的二进制表示形式得到的就是原码。
正数
正数的原码、反码、补码是相同的
负数
负数的反码和补码需要通过计算得到结果
①负数的反码是原码的符号位不变,其他位按位取反,就是反码
②负数的补码是反码+1
③0表示为正,1表示为负
由于整型为4个字节,占32个bit。
eg:
int a=10;
//原码00000000000000000000000000001010
//反码00000000000000000000000000001010
//补码00000000000000000000000000001010
int a=-10;
//原码:10000000000000000000000000001010
//补码:11111111111111111111111111110101
//反码:11111111111111111111111111110110
左移操作符左移操作符的移位规则为:左边抛弃,右边补0。
#includeint main()
{int a = 10;
int b = a<< 1;
printf("%d\n", b);
return 0;
}
详解过程:
运行结果:
对于负数来说‘
#includeint main()
{int a = -10;
int b = a<< 1;
printf("%d\n", b);
return 0;
}
详解过程:
运行结果:
右移操作符分为两种,分别是:
①、逻辑移位:左边用0填充,右边丢弃
②、算术移位:左边用原该值的符号位填充,右边丢弃
#includeint main()
{int a = -10;
int b = a >>1;
printf("%d\n", b);
return 0;
}
运行结果:
位操作符分别有:
& //按位与
| //按位或
^ //按位异或
他们也是针对二进制位进行计算的
注:他们的操作数必须是整数。
①、 &
规则为:对应的二进制位有0,则为0,两个同时为1,才为1
#includeint main()
{int a = 2;
int b = -1;
printf("%d\n", a & b);
return 0;
}
运行结果:
②、|
规则为:对应的二进制位有1则为1,两个同时为0则为0
#includeint main()
{int a = 3;
int b = -5;
printf("%d\n", a | b);
return 0;
}
运行结果:
③、^
规则为:按2进制位异或,对应的二进制位:相同为0,相异为1。
#includeint main()
{int a = 3;
int b = -5;
printf("%d\n", a ^ b);
return 0;
}
运行结果:
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
网站题目:C语言——操作符详解(上)-创新互联
标题来源:http://scyanting.com/article/hhihg.html