操作符的分类

简介: 操作符的分类

目录

  1. 操作符的分类
  2. 算术操作符
  3. 移位操作符

3.1 左移操作符
3.2 右移操作符

  1. 位操作符
  2. 赋值操作符

总结

  1. 操作符的分类

算术操作符
移位操作符
位操作符
赋值操作符
单目操作符
关系操作符
逻辑操作符
条件操作符
逗号表达式
下标引用、函数调用和结构成员

  1. 算术操作符
      • / %(加法,减法,乘法,取余,取模)

1
代码演示:

include<stdio.h>

int main()
{


float b = 7 / 2;
float c = 7.0 / 2;
printf("%f\n", b);
printf("%f\n", c);

return 0;

}
1
2
3
4
5
6
7
8
9
10
11
运行结果:

注意:对于 / 操作符如果两个操作数都为整数,执行整数除法,而只要有浮点数执行的就是浮点数除法

代码演示:

include<stdio.h>

int main()
{

int a = 7 % 2;
float b = 7 % 2;
printf("%d\n", a);
printf("%d\n", b);
return 0;

}
1
2
3
4
5
6
7
8
9
运行结果:

由结果可知:变量的类型使用错误的话,结果也是错误的
还要注意:
除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数
% 操作符的两个操作数必须为整数,返回的是整除之后的余数

  1. 移位操作符

<< 左移操作符 >> 右移操作符

3.1 左移操作符
移位规则:左边抛弃、右边补0。
整数是 int 型,占4个字节,有32位表示。其中最高位表示符号,0为正,1为负整数。
函数printf打印的是整数的原码

操作符对整数操作的流程:
(1)先将整数的原码转换成反码
(2)反码 +1转换成补码
(3)最后对整数的补码进行操作
(4)操作结束后,将操作后的补码 -1 转换成反码
(5)将反码转换成最终的原码

正数左移一位:

代码演示:

include<stdio.h>

int main()

{


int a = 2;// 00000000 00000000 00000000 00000010 2的补码
int b = a << 1;//操作的补码二进制位,a本身结果不变
printf("%d\n", a);// 2
printf("%d\n", b);// 4
return 0;

}

1
2
3
4
5
6
7
8
9
10
11
12
分析:

运行结果:

结果表明分析是正确的,且正数左移一位相当于乘2,负数分析的思路相同,需要注意负数原码反码补码之间的关系。

注意:对于移位运算符,不要移动负数位,这个是标准未定义的

intnum=10;
num>>-1;//error

相关文章
|
SQL 前端开发 关系型数据库
LLM大模型实战 —— DB-GPT阿里云部署指南
DB-GPT 是一个实验性的开源应用,它基于FastChat,并使用vicuna-13b作为基础模型, 模型与数据全部本地化部署, 绝对保障数据的隐私安全。 同时此GPT项目可以直接本地部署连接到私有数据库, 进行私有数据处理, 目前已支持SQL生成、SQL诊断、数据库知识问答、数据处理等一系列的工作。
10856 75
|
Oracle 关系型数据库 流计算
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
Flink CDC不支持直接连接到Oracle ADG备库进行数据同步
596 1
|
Python
项目依赖的python包requirements.txt文件的生成与安装
项目依赖的python包requirements.txt文件的生成与安装
1238 0
|
消息中间件 存储 运维
|
Dart 安全 编译器
Flutter结合鸿蒙next 中数据类型转换的高级用法:dynamic 类型与其他类型的转换解析
在 Flutter 开发中,`dynamic` 类型提供了灵活性,但也带来了类型安全性问题。本文深入探讨 `dynamic` 类型及其与其他类型的转换,介绍如何使用 `as` 关键字、`is` 操作符和 `whereType&lt;T&gt;()` 方法进行类型转换,并提供最佳实践,包括避免过度使用 `dynamic`、使用 Null Safety 和异常处理,帮助开发者提高代码的可读性和可维护性。
450 1
|
存储 供应链 数据挖掘
RDBMS技术有哪些应用场景
【10月更文挑战第21】RDBMS技术有哪些应用场景
394 2
|
数据采集 存储 监控
Java爬虫:数据采集的强大工具
在数据驱动的时代,Java爬虫技术凭借其强大的功能和灵活性,成为企业获取市场信息、用户行为及竞争情报的关键工具。本文详细介绍了Java爬虫的工作原理、应用场景、构建方法及其重要性,强调了在合法合规的前提下,如何有效利用Java爬虫技术为企业决策提供支持。
|
Web App开发 前端开发 JavaScript
React性能优化指南:打造流畅的用户体验
React性能优化指南:打造流畅的用户体验
|
Ubuntu Linux 虚拟化
嵌入式Linux系列第1篇:开发环境搭建
Ublox ZED-F9P 厘米级定位模组开箱评估
|
存储 SQL 数据管理
Data Fabric:一站式数据管理与服务
在2023年11月01日云栖大会D区D2-1进行了主题为阿里云瑶池数据库如何助力企业数字化转型与升级的演讲,本文带大家一起了解阿里云数据库生态工具产品部负责人周文超的精彩演讲,内容为《Date Fabric:一站式数据管理与服务》。
98448 5