Mailing Lists: Apple Mailing Lists

Image of Mac OS face in stamp
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 64-bit srandom()?



On Nov 14, 2007 10:57 AM, A.M. <email@hidden> wrote:
>
> On Nov 14, 2007, at 1:37 PM, Nick Zitzmann wrote:
>
> > I searched around and didn't see anything relevant...
> >
> > In our 32-bit projects, we're calling:
> >
> > srandom(time(NULL));
> >
> > What's the best way of doing something like the above in a 64-bit
> > program? srandom() takes a 32-bit integer when compiling for both
> > 32-bit and 64-bit, but time() returns a 64-bit integer when
> > compiling for 64-bit. I guess I have until 2038 to worry about
> > this, but I'd rather deal with it now...
>
> srandrom() doesn't really care about the actual time- you should just
> make sure you seed with the least-significant 32-bits which you can

Because of the type conversion rules of C, you're guaranteed to get
the least significant 32-bits when you convert a 64-bit unsigned
integer to a 32-bit integer. No need for any bitwise operations.:

unsigned seed = time(NULL);

-- 
Clark S. Cox III
email@hidden
 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/darwin-dev/email@hidden

This email sent to email@hidden

References: 
 >64-bit srandom()? (From: Nick Zitzmann <email@hidden>)
 >Re: 64-bit srandom()? (From: "A.M." <email@hidden>)



Visit the Apple Store online or at retail locations.
1-800-MY-APPLE

Contact Apple | Terms of Use | Privacy Policy

Copyright © 2007 Apple Inc. All rights reserved.