C语言数据类型转换.ppt

C语言数据类型转换.ppt

ID:53580610

大小:119.01 KB

页数:11页

时间:2020-04-20

C语言数据类型转换.ppt_第1页
C语言数据类型转换.ppt_第2页
C语言数据类型转换.ppt_第3页
C语言数据类型转换.ppt_第4页
C语言数据类型转换.ppt_第5页
资源描述:

《C语言数据类型转换.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据类型转换陈孝则发生在不同数据类型的量混合运算时,由编译系统自动完成。1若参与运算量的类型不同,则先转换成同一类型,然后进行运算。2.转换按数据长度增加的方向进行,以保证精度不降低。如int型和long型运算时,先把int量转成long型后再进行运算。1.自动类型转换3.所有的浮点运算都是以双精度进行的,即使仅含float单精度量运算的表达式,也要先转换成double型,再作运算。4.char型和short型参与运算时,必须先转换成int型。5.在赋值运算中,赋值号两边量的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样

2、会降低精度,丢失的部分按四舍五入向前舍入。back2类型转换的规则该程序中,PI为实型;s,r为整型。在执行s=r*r*PI语句时,r和PI都转换成double型计算,结果也为double型。但由于s为整型,故赋值结果仍为整型,舍去了小数部分。#includeintmain(){floatPI=3.14159;ints,r=5;s=r*r*PI;printf("s=%d",s);getchar();}当赋值运算符两边的运算对象类型不同时,将要发生类型转换,转换的规则是:把赋值运算符右侧表达式的类型转换为左侧变量的类型。2.赋值中的类型转换具体的转换如下:(1)浮点型

3、与整型•将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分,只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式,即小数点后带若干个0。注意:赋值时的类型转换实际上是强制的。(2)单、双精度浮点型•由于C语言中的浮点值总是用双精度表示的,所以float型数据只是在尾部加0延长为doub1e型数据参加运算,然后直接赋值。doub1e型数据转换为float型时,通过截尾数来实现,截断前要进行四舍五入操作。(3)char型与int型•int型数值赋给char型变量时,只保留其最低8位,高位部分舍弃。•chr型数值赋给int型变量时,一些编译程序不管其值大小都作正数处理,

4、而另一些编译程序在转换时,若char型数据值大于127,就作为负数处理。对于使用者来讲,如果原来char型数据取正值,转换后仍为正值;如果原来char型值可正可负,则转换后也仍然保持原值,只是数据的内部表示形式有所不同。(4)int型与1ong型•long型数据赋给int型变量时,将低16位值送给int型变量,而将高16位截断舍弃。(这里假定int型占两个字节)。将int型数据送给long型变量时,其外部值保持不变,而内部形式有所改变。(5)无符号整数•将一个unsigned型数据赋给一个占据同样长度存储单元的整型变量时(如:unsigned→int、unsignedlong→long,

5、unsignedshort→short),原值照赋,内部的存储方式不变,但外部值却可能改变。•将一个非unsigned整型数据赋给长度相同的unsigned型变量时,内部存储形式不变,但外部表示时总是无符号的。可以利用强制类型转换运算符将一个表达式转换成所需类型:例如:(double)a(将a转换成double类型)(int)(x+y)(将x+y的值转换成整型)(float)(5%3)(将5%3的值转换成float型)(int)(1.5+2.3)=3对于从高到低的强制转换,实质上就是一个截断的操作,只把低端需要的部分保留,其余的部分直接扔掉了。3.强制类型转换oook

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。