3001|0

384

帖子

2

TA的资源

纯净的硅(初级)

楼主
 

关于Keil C51中的数据类型转化问题 [复制链接]

我得到的结论是 只有=右边的结果不超出左边的数据类型的范围就不会有问题
float f = 123.456;
uchar a = 0, b = 0, c = 0;
a = f;    //a = 123
a = (uchar)f;    //a = 123
f = f - a;
f = f * 1000;    //f = 456.0013 仿真结果
b = (uchar)f;   //456 超出uchar的范围 所以有问题 b = 456 % 256 = 200
b = (uchar)(f / 100);  // b = 4
b = (f / 100);               // b = 4  

b = (uchar)((uint)f / 100);    // b = 4  


a = f / 100;  //a = 2
b = (int)f % 100 /10; //b = 3
c = (int)f % 10;   //c = 4

以上为个人见解,有问题欢迎大家指出来。

[ 本帖最后由 upc_arm 于 2012-2-19 18:04 编辑 ]
此帖出自51单片机论坛
点赞 关注
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表