Windows系统如何用rand()函数生成0到2^30-1之间的随机数

在Windows系统中,rand()函数能生成的随机数的范围为0~32767。我尝试过修改RAND_MAX的值,可是没用,生成的随机数还是在0~32767之间。

那该怎么办?????

我们可以随机生成一个32768进制数。因为32768=2^15,为了保证不超过int的范围,这个32768进制数不能超过2位。那么,我们可以一位一位地生成。

代码:

int bigrand(){//生成0 ~ 2^30-1之间的随机数 
	int a = rand();//32768进制数的高位
	int b = rand();//32768进制数的低位
	return a * 32768 + b;//计算出这个数
}

调用bigrand()函数即可生成0~2^31-1之间的随机数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值