How can I compute the range of signed and unsigned types

Chris Richard Adams chrisa at ASPATECH.COM.BR
Wed Apr 18 07:02:21 PDT 2001

This is my point - how can I compute this so my code could run on any
machine. I need to show the range possible on any can I
compute that?


-----Original Message-----
From: James Cownie [mailto:jcownie at]
Sent: Wednesday, April 18, 2001 10:19 AM
To: Beowulf (E-mail)
Subject: Re: How can I compute the range of signed and unsigned types 

Jag wrote : -

> Those sizes are defined for the C language.  In order words, no
> matter if you're on a 32-bit machine or a 64-bit machine, an int is
> always going to be 32-bit and thus have the same numeric range
> because the standards say so.  This goes for all the basic types,
> not just int's.

No, the C standard says nothing of the sort.

All the C standard says is that

1) sizeof (char)  == 1
2) sizeof (short) >= sizeof (char)
3) sizeof (int)   >= sizeof (short)
4) sizeof (long)  >= sizeof (int)
5) sizeof (long long) >= sizeof (long).

It also does not specify that the representation of an int is two's
complement, so even on machines with the same sizeof(int) the legal
ranges could differ.

-- Jim 

James Cownie	<jcownie at>
Etnus, LLC.     +44 117 9071438

Beowulf mailing list, Beowulf at
To change your subscription (digest mode or unsubscribe) visit

More information about the Beowulf mailing list