欢迎来到天天文库
浏览记录
ID:34449687
大小:535.10 KB
页数:10页
时间:2019-03-06
《第5讲_类型转换》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、嵌入式LinuxLinux系统开发技术第5讲类型转换编者:方红芬数据类型转换•C数据类型转换方式–自动转换(隐式转换)–赋值转换–强制转换自动转换•在多种数据类型混合运算时,系统一般会自动完成类型转换;•转换的规则是:存储长度较短的转换成存储长度较长的,并且不丢失信息。charch;inti,result;floatf;doubled;result=(ch/i)+(f*d)-(f+i);赋值转换•赋值转换–如果赋值运算符两侧的类型不一致,但都–是数值型或字符型时,在赋值时要进行类型–转换。•赋值转换分类–浮点型与整型赋值转
2、换–double型与float型赋值转换–字符型与整型赋值转换–Int类型与long类型赋值转换浮点型与整型赋值转换•将浮点型数据赋给整型变量时,舍弃浮点数的小数部分。–例:inti=3.56•将整型数据赋给浮点型变量时,数值不变,但以浮点数形式存储到变量中。–例:floatf=23double型与float型赋值转换•将一个double型数据赋给float变量时,截取其前面7位有效数字,存放到float变量的存储单元(4个字节)中。但应注意数值范围不能溢出。–例:floatf;doubled=123.456789e100
3、;f=d;就出现溢出的错误。Inf,0•如果将一个float型数据赋给double变量时,数值不变,存储方式与有效位数与double类型一致;字符型与整型赋值转换•字符型数据赋给整型变量时,将字符数据放到整型变量存储单元的低8位中。–对于无符号字符类型,则将字符的8位放到整型变量低8位,高8位补零;–对于有符号字符类型,若字符最高位为0,则整型变量高8位补0;若字符最高位1,则高8位全补1。–Char000000012400000,10000001»241111111,10000001•将一个整型数据赋给一个char型
4、变量时,只将其低8位原封不动地送到char型变量(即截断)。Int类型与long类型赋值转换•将有符号int类型赋给long类型变量时,要进行符号扩展;–如果int类型的最高位为1,则long类型的高位全补1;–如果int类型的最高位为0,则long类型的高位全补0•将无符号int类型数据赋给long类型变量时,不存在符号扩展问题,只需将高位补0即可。•将long类型赋给int类型变量时,将低位原封不动的送给int类型,做截断;强制类型转换•强制类型转换符:()–(类型名)表达式;•示例:–(double)a将a转换成do
5、uble类型–(int)(x+y)将x+y的值转换成整型–(float)(5%3)将5%3的值转换成float型经过赋值运算后,(int)f返回的整型值重新转换为浮点数,f本身的值floatf,x;不变。f=3.14159;x=(int)f;
此文档下载收益归作者所有