当前课程知识点:C语言程序设计(上) >  数据计算实现与顺序结构程序设计(二) >  2.6 混合运算及数据类型转换 >  2.6 混合运算及数据类型转换

返回《C语言程序设计(上)》慕课在线视频课程列表

2.6 混合运算及数据类型转换在线视频

2.6 混合运算及数据类型转换

下一节:讨论题:数据类型

返回《C语言程序设计(上)》慕课在线视频列表

2.6 混合运算及数据类型转换课程教案、知识点、字幕

大家好

混合运算及数据类型转换

是我们这章的最后一个问题

这个式子我们是看见过的

我们这里边没有任何说

强制的你把它转换成谁

那它是 要不要转换呢

所以是这样子

当它当前这个操作 遇到了不同类型的时候

它会要求 先转换成相同类型

再进行运算

比如说 3.6和a进行运算的时候做乘法

那a和3.6必须是同类型的

如果a里边是一个整型的

那会自动的把a里的整型数转成实型数

才做和3.6的运算

那么也就是说

当我做3除以5的时候

它并没有冲突 和3.6没关系

当前这个除法

不影响我当前的 你的类型是一致的

3/5 那得到的结果是什么呢

就不是0.6了 就是0

为什么呢

一个3整型数 5整型数 得到整型数0

所以说 做除法一定要注意

那现在呢你这得到了0

0和sinx要相乘

而0和前面的实型数要相加

那现在0乘这个数一定是0了

不管它是整型的0还是实型的0

那前边的这个实型数

和后边的如果是整型的0

那我们要相加的时候

那就是一个实型数和整型数遇到了一起

先转换 再运行

所以呢 我们现在说

这类转换 不是人为的

是系统自动判断的

当两个不同的数据类型进行计算的时候

一定先转换成同一个类型

但是呢 这跟别的语言里边有一点不同

有的语言里是这样

把整个式子的类型

都转换成相同的类型再进行运算

而C里边呢是

走到一处 进行当前操作

你只要保持一致就可以了

所以 这是一个陷阱

有时候我们说 整个式子是实型的

那这块是整型的不要紧

其实不是这样

你整型的一定造成了这一块是0

所以呢 我们大家说

1/2 本来应该是0.5

可是除的结果一定是0

那2.0+1/2 函得的结果是

2.0 而不是2.5

那还有一个呢说

我们这个隐式转换的一个规则

大家刚才基本上已经听出来了

我们再明确一下 什么规则呢

就是说我不强制你转换

你到底按什么原则转换呢

基本上是按你在内存里占得位数

原则是 位数少的向位数多的转换

我们换一个说法说

把精度低的向精度高的进行转换

那我们说 刚才大家已经听见了

隐式转换的规则 是什么样子呢

我们这样说

即 精度低的向精度高的转换

什么叫精度低

是说它在内存里占的 位数越少

它表达的精度 就必然低了

所以原则是

只要是精度低的和精度高的在一起

咱是向高的转换

比如说char型和int

不管int是两个字节的int还是4个字节的int

那你把这一个字节的字符

先转换成int 再运算

比如说float是4个字节

double是8个字节

那先转换成8个字节的double 

我们再进行运算

那这一块要稍微说明一下的是

运算器里的对实型数的运算

其实都是double型的

是因为运算器它的宽度都是double型的

所以只有到输出的时候

我把这个数据搁在一个 float里边呢

还是搁在一个double型的数据里边

是在于 你定义的当时的变量

我们看一下 下面这个例子

那就是一个整型数加上一个字符型

当然 是先把字符转成整型

那我们后边呢 涉及到

整型的i和 float的f

那当然是

把它转换成 float型进行运算

后边呢 我们也看一样的

d和e 也是不同的类型

转换成double型

那在这个过程里边

int型和double型类型的运算

一定是double型

再看下边的一定是double型

这double和double运算 肯定是double型

那么最终 我们给f里边赋值的到底

我们运算完了是double型

那我们现在赋值过去的

到底是double还是float呢

那是f 取决于f 你的容量是多大

你的容量只有4个字节

当然我赋值的是按照4个字节去赋值的

所以呢

只是说 就说我这个f 我们又转换成

我们又把f变成8个字节去存储

f还是4个字节

只是运算的过程里边它是按double型的算的

所以呢 它本身f并没有转变

只是按 一个什么类型在进行运算

那强制转换就不同了

强制转换说 这有一个表达式

这个表达式运算的结果

可能是实型 也可能是整型 也可能double型

我想让你变成整型

我前边给一个 强制的整型转换

比如说 刚才我们说的这个结果

括弧int

无论你这里边现在运算完了的

是整型实型字符型

我都会让你变成 整型

当然 你可以也强制转换成float

强制转换成double是一样的

这叫显式的 人为的 给它进行的一个转换

所以呢 这个转换一定在前边会加上一个括弧

给的是例行的一个关键字

C语言程序设计(上)课程列表:

从问题到C语言程序设计

-1.1 计算机的问题求解方法

--1.1.1--程序设计面向的问题

--1.1.2--关于计算

--1.1.3-1关于算法-算法的特征

--1.1.3-2关于算法——算法的表示

--1.1.3-3关于算法——算法的优化

--1.1.4-1-程序设计方法

--1.1.4-2-程序设计方法

--讨论题:数学模型

-1.1 计算机的问题求解方法--作业

-1.2 C语言与C程序

--1.2.1-1-C概述

--1.2.1-2-C概述

--1.2.2-C初步

--讨论题:运算符

-1.3 C语言处理系统与程序调试运行

--1.3.1C程序如何调试运行

--1.3.2常用C语言处理系统

--1.3.3DEVC++的使用-v1

--1.3.4C语言概貌小程序

--例程

-1.4 程序中的人机交互

--1.4 printf用法

--1.4.2 scanf的用法

--例程

--作业讨论区

数据计算实现与顺序结构程序设计(一)

-2.1 算术运算的C程序实现

--2.1.1 第二章

--2.1.2 C语言算术表达式概念

--2.1.3 算术运算的实现

--2.1.4 整数相除

--2.1.5 输入格式造成的计算错误

--2.1.6 求余运算

--2.1.7 自增自减运算

--2.1.8 复合运算

--fangcheng.c

--fangcheng-1.c

--fangcheng-2.c

--fangcheng-3.c

--fangcheng-4.c

--算术混合运算.c

--讨论题:自增自减符

--讨论题:程序输出结果

--讨论题:程序运行结果

-2.1 算术运算的C程序实现--作业

-2.2 关系运算的C程序实现

--2.2.1 关系比较问题

--2.2.2 C语言关系表达式

--2.2.3关系运算优先级

--2.2.4 用关系运算做判断条件

--2.2.5 程序实例

--2.2.6 字符比较

--bukao.c

--pingshifen-1.c

--panduanzhengshu.c

--pingshifen-2.c

--字符比较.c

--讨论题:比较大小

--讨论题:程序的运行

-2.2 关系运算的C程序实现--作业

-第二周作业--作业

数据计算实现与顺序结构程序设计(二)

-2.3 逻辑运算的C程序实现

--2.3.1 逻辑运算问题~1

--2.3.2 逻辑运算表达式

--2.3.3 如何判断闰年

--2.3.4 逻辑运算优先级

--2.3.5 条件运算符

--计算结合性

--2.3.7 一个简单实例

--闰年.c

--自动购票问题.c

--讨论题:逻辑表达式

-2.3 逻辑运算的C程序实现--作业

-2.4 位运算的C程序实现

--2.4.1 什么是位运算

--2.4.2 位运算有哪些

--2.4.3 位运算怎么用

--讨论题:位运算

-2.5 几种很个别的运算

--2.5 几个很个别的运算

--讨论题

--讨论题

-2.5 几种很个别的运算--作业

-2.6 混合运算及数据类型转换

--2.6 混合运算及数据类型转换

--讨论题:数据类型

-2.7 顺序结构程序实例

--2.7.1 第一个程序:三角形

--Video

--三角形面积.c

--讨论题:工业产值

--讨论题:程序无效结果

-2.7 顺序结构程序实例--作业

选择结构的程序设计

-3.1 程序中的路径选择实现

--3.1.1_1 第三章

--3.1.1_2 神奇的if_else

--打印学生成绩.c

--一元二次方程.c

-3.1 程序中的路径选择实现--作业

-3.2 路径中的再选择——嵌套判断

--3.2.1_1 if语句的嵌套

--3.2.1_2三个数排序1029

--例程

--3.2.2 用户登录检查

--三个数排序_未优化.c

--三个数排序_优化.c

--讨论题:程序改错

-3.2 路径中的再选择——嵌套判断--作业

-3.3 复杂判断问题的C程序设计

--3.3 多级选择

--银行存款.c

--讨论题:多级选择

-3.4 多分支问题的C程序设计

--3.4.1 switch语句表达式

--3.4.2 加减乘除计算

--3.4.3 几类说明

--加减乘除运算.c

--讨论题:关于switch

-3.4 多分支问题的C程序设计--作业

-3.5 GOTO的适当使用

--3.5 GOTO的适当使用

-3.6 选择结构的程序实例

--3.6 程序展示

--计算第几天.c

--存款利息__switch实现.c

--讨论题:输出奇数

--讨论题:计算税金

-3.6 选择结构的程序实例--作业

-第四周作业--作业

循环结构的程序设计(一)

-4.1 需要重复执行的程序

--4.1.1----第四章~1

--4.1.2---while实现先判断后循环~1

--4.1.3----while循环的应用-录入速度~1

--求和.c

--打印学生成绩.c

--统计录入速度.c

--求平均数.c

-4.1 需要重复执行的程序--作业

-4.2 至少要执行一次的循环

--4.2.1至少要执行一次的循环

--4.2.2-do-while循环应用

--成绩录入_do while实现.c

--n的阶乘.c

--字符分类统计.c

--讨论题:关于while

-4.2 至少要执行一次的循环--作业

-4.3 已知循环次数用for语句

--4.3.1--用for语句控制循环次数

--4.3.2--循环的应用-求和

--求和问题.c

--斐波那契数列问题.c

--数列求和.c

--讨论题:循环语句的不同

--讨论题:循环语句

-4.3 已知循环次数用for语句--作业

-4.4 循环控制——简单循环应用

--4.4.1-循环的应用-找数-水仙花数

--4.4.2--循环的应用-求素数

--水仙花数.c

--讨论题:死循环

--讨论题:continue和break

--讨论题:猜数字

-循环结构的程序设计(一)--4.4 循环控制——简单循环应用

循环结构的程序设计(二)

-4.5 循环的嵌套

--4.5.1 循环的嵌套——九九乘法表

--4.5.2 循环的嵌套——打印三角形

--打印九九乘法表.c

--打印实心三角图案.c

--打印空心三角图案.c

--讨论题:程序运行

-4.5 循环的嵌套--作业

-4.6 break与continue

--4.6 循环中断与继续循环——break再讨论

--最大素数.c

--求正数个数及平均数.c

-4.6 break与continue--作业

-4.7 循环的综合应用

--4.7.1 数的排列组合问题

--4.7.2 循环综合应用——穷举算法

--4.7.3 循环综合应用——满足条件的数

--4.7.4 循环综合应用——求最后三位数

--4.7.5 循环综合应用——打印空心图案

--数的排列组合.c

--数的排列组合优化.c

--鸡兔同笼.c

--找满足条件的数.c

--输出14的13次方的最后三位数.c

--打印空心字符.c

--讨论题:打印图形

--讨论题:打印空心图形

--讨论题:计算闰年

-第六周作业

--虚拟实验:循环程序设计实验

-第六周作业--作业

数组(一)

-5.1 同类有序数据处理问题

--5.1.0 数组开篇

--5.1.1 同类有序数据存储问题

--讨论题:下标变量与下标

-5.2 一维数组的定义和引用

--5.2.1_1 数组的定义~1

--5.2.1_2 数组的初始化

--5.2.2 一维数组的输入输出

--5.2.3 一维数组的应用1--成绩排序(选择法)~2

--5.2.4 一维数组的应用2--Fibonacci数列

--数组定义.c

--数组初始化.c

--输出大于平均值的数.c

--反向输出.c

--选择法_成绩排序.c

--求斐波那契数列前n项.c

--讨论题:对称数

--讨论题:关于'\0'

-5.2 一维数组的定义和引用--作业

-5.3 一维字符串数组

--5.3 一维字符串数组11.24~1

--用函数测试字符串长度.c

--讨论题:编程

-5.4 字符串处理函数

--5.4 字符数组的输入与输出

--字符串反向.c

--字符串函数

--讨论题:程序如何运行

--讨论题:黑色星期五

数组(二)

-5.5 二维数组的定义与使用

--5.5 二维数组定义

--二维数组的定义与初始化.c

-5.6 二维数组的输入输出

--5.6 二维数组的输入与输出

--二位数组输出_矩阵输出.c

--讨论题:随机数据存储

-5.6 二维数组的输入输出--作业

-5.7 二维数组的应用‍

--5.7.1二维数组的应用-转置矩阵

--5.7.2 用一维数组方式引用二维数组元素

--转置矩阵.c

--找二维数组最大数.c

--讨论题:修改程序

--讨论题:关于随机数函数 rand()

-5.8 二维字符数组

--5.8 单词排序

--单词排序.c

--讨论题:回文字符串

-5.8 二维字符数组--作业

-5.9 数组综合应用

--5.9.1 应用1——学生成绩统计

--统计成绩.c

--5.9.2 应用2——删除重复字符

--删除串中的重复字符串

--5.9.3 应用3——统计字符

--5.9_4数组的应用4--矩阵相乘

--统计字符次数.c

--讨论题:洗牌

-本期课程结束语

--end

-第八周编程作业

--虚拟实验:冒泡排序算法程序设计实验

期末复习

-《C语言程序设计(上)》期末复习参考

--html

期末复习答案

-《C语言程序设计(上)》期末复习参考答案

--html

2.6 混合运算及数据类型转换笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。