博客首页 注册 建议与交流 排行榜 加入友情链接         宝宝相册的专门空间
推荐 投诉 搜索: 帮助

cnsLinux博客

操作系统|编程语言|服务器|网络|防火墙|安全|路由|数据库|备份|日志|IT|电子邮件|流媒体|健康|医院|求职|招聘|工作|人才|空间Linux|C|C++|Java|Python|PHP|SQL|类库|网页|office|英语
  cnscn2008.cublog.cn

关于作者
作者:cnscn 
QQ: 214363570
MSN:cnscn@163.com
主页:http://www.cnscn.org    

文章要有质量...
|| << >> ||
我的分类


C/C++类型转换的必要性
以随机数为例,
因为rand()的取值范围可以0与int的最大值之间,
所以 2*std::rand()的值可能会大于int的最大值即产生溢出而导致不必要的结果,而2和std::rand()又都是int型的,所以两者的取值在int型取值区间可能会无法正确表示

所以只能把两者转换为long型,这里把std::rand()的值转换为long型(同样可以把数值2进行转换static_cast<long>(2) 或直接写成2L)

2*static_cast<long>(std::rand()) 或 2L*std::rand() 这样就确保了运算的结果为long整型,所以结果保证是正确的

发表于: 2007-09-27,修改于: 2007-09-27 16:21,已浏览677次,有评论0条 推荐 投诉


网友评论
 发表评论