Integer promotion... what I'm missing? (It's monday...)
Kirk McDonald
kirklin.mcdonald at gmail.com
Tue Jun 27 12:33:32 PDT 2006
Alexander Panek wrote:
> If you take a look at how comparison works, you'll know why this one fails.
>
> Lets take an uint a = 16; as in your example:
> 00000000 00000000 00000000 00010000
>
> And now a signed integer with the value -1:
> 10000000 00000000 00000000 00000001
>
Your point still stands, but -1 is represented as:
11111111 11111111 11111111 11111111
http://en.wikipedia.org/wiki/Two%27s_complement
> You might guess which number is bigger, when our comparison is done
> binary (and after all, that's what the processor does) :)
>
> Regards,
> Alex
>
> Paolo Invernizzi wrote:
>
>> Hi all,
>>
>> What I'm missing?
>>
>> uint a = 16;
>> int b = -1;
>> assert( b < a ); // this fails! I was expecting that -1 < 16
>>
>> Thanks
>>
>> ---
>> Paolo
More information about the Digitalmars-d-learn
mailing list