博客首页
注册
建议与交流
排行榜
加入友情链接
宝宝相册的专门空间
推荐
投诉
搜索:
帮助
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条
推荐
投诉
网友评论
发表评论