永发信息网

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

答案:1  悬赏:30  手机版
解决时间 2021-01-03 15:27
  • 提问者网友:回忆在搜索
  • 2021-01-03 04:17
这段程序的RAND_MAX为什么要加1.0呢?
#include
main()
{
int i,j;
for(i=0;i
最佳答案
  • 五星知识达人网友:时间的尘埃
  • 2021-01-03 05:12

难道你的int 是16位的?……神啊……
RAND_MAX 的宏定义是0x7fff就是 16位有符号整形的最大正值32767.你加上1以后变成了 0x8fff最高位为1,换成16位int 就是 -(32768 - 4095).所以是负数.但是如果你加1.0,RAND_MAX+1.0就会转换成浮点型,浮点型应该是32或更大.所以是正数.


我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯