作业帮 > 综合 > 作业

这段程序的RAND_MAX为什么要加1.0呢?

来源:学生作业帮 编辑:百度作业网作业帮 分类:综合作业 时间:2024/07/08 02:52:36
这段程序的RAND_MAX为什么要加1.0呢?
#include
main()
{
int i,j;
for(i=0;i
这段程序的RAND_MAX为什么要加1.0呢?
难道你的int 是16位的?……神啊……
RAND_MAX 的宏定义是0x7fff就是 16位有符号整形的最大正值32767.你加上1以后变成了 0x8fff最高位为1,换成16位int 就是 -(32768 - 4095).所以是负数.但是如果你加1.0,RAND_MAX+1.0就会转换成浮点型,浮点型应该是32或更大.所以是正数.