Paul Eggert wrote:
> Also, such an approach assumes that unsigned long long int
> has at least as many bits as long long int. But this is an
> unportable assumption; C99 does not require this. We have
> run into hosts where the widest signed integer type has much
> greater range than the widest unsigned type. I hope these
> hosts go away in the long run, but they're in production use
> today. (The platform I'm thinking of is Tandem NSK/OSS.)
Is this correct? Doesn't C99's 6.2.5#6 mandate that unsigned
long long int has exactly the same number of bits as long long int?
Perhaps you mean that in Tandem NSK/OSS unsigned long long ints
do not use several bits of the representation?
Am I missing something else?
All the best,
Roberto
ISO/IEC 9899:1999 6.2.5
[...]
4 There are five standard signed integer types, designated as signed
char, short int, int, long int, and long long int. [...]
[...]
6 For each of the signed integer types, there is a corresponding (but
different) unsigned integer type (designated with the keyword
unsigned) that uses the same amount of storage (including sign
information) and has the same alignment requirements. [...]
[...]
--
Prof. Roberto Bagnara
Computer Science Group
Department of Mathematics, University of Parma, Italy
http://www.cs.unipr.it/~bagnara/
mailto:[EMAIL PROTECTED]