Mail Archives: djgpp/1996/05/11/17:52:13
Xref: | news2.mv.net comp.lang.c:67292 comp.os.msdos.djgpp:3697
|
From: | fmarcos AT jet DOT es (Fernando Marcos)
|
Newsgroups: | comp.lang.c,comp.os.msdos.djgpp
|
Subject: | Re: Use of random
|
Date: | Wed, 08 May 1996 23:11:18 GMT
|
Organization: | Servicio IBERNET (Telefonica Transmision de Datos)
|
Lines: | 24
|
Message-ID: | <4ms6c2$hev@minerva.ibernet.es>
|
References: | <4mikhp$pa5 AT frodo DOT smartlink DOT net>
|
NNTP-Posting-Host: | info160.jet.es
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
nmarrone AT smartlink DOT net (Nicholas Marrone) wrote:
>program compiles and runs without error, but it gives me #s far larger
>than integers when I print out some results. I'm using DJGPP v2.
Nicholas:
As stated in the DJGPP docs, rand() returns a random number (weird
thing, isn't it?) between 0 and RAND_MAX. And RAND_MAX is defined in
STDLIB.H as 2147483647... which preciselly is an int. I guess from
what you write that you expect something upto 65535, which is the
maximum value reachable in a 16 bit environment. But remember, DJGPP
is a 32 bit compiler, so integers are 32 bit wide. That results is a
maximum capacity of +/-2^31 -1, which is (yaho!) 2147483647, or
0x7FFFFFFF.
If you need SHORT (16 bit) numbers, try shifting the rand result by
16:
short wops;
wops = rand() >> 16;
Fernando.
- Raw text -