Solved

How to generate a random 32bit number?

Posted on 1998-12-08
2
317 Views
Last Modified: 2010-04-15
It appears the Visual C++ implements the rand() function such that it returns a value from 0-2^15.  How can I generate a random unsigned int?  The full 32bits...
0
Comment
Question by:jonem
2 Comments
 
LVL 8

Accepted Solution

by:
Answers2000 earned 100 total points
ID: 1254957
VC rand() generates a random number between 0 and x7fff (32767).  The later being the constant given by RAND_MAX

I guess a crude algorithm is to use multiple random numbers and shift

int r1 = rand() & 0x7FFF  ;
inr r2 = rand() & 0x7FFF ;
int r3 = rand() & 0x0003 ;

int rnd = ( (r1) | (r2 << 15) | ( r3 << 30 ) ) ;

0
 
LVL 84

Expert Comment

by:ozo
ID: 1254958
here's a slightly less crude algorithm:
http://www.math.keio.ac.jp/~nisimura/random/int/mt19937int.c
0

Featured Post

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Windows programmers of the C/C++ variety, how many of you realise that since Window 9x Microsoft has been lying to you about what constitutes Unicode (http://en.wikipedia.org/wiki/Unicode)? They will have you believe that Unicode requires you to use…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
The goal of this video is to provide viewers with basic examples to understand and use pointers in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use structures in the C programming language.

810 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question