Hi: On 23 Dec 2011, at 12:49, Stéphane Ducasse wrote:
I read somewhere that in C short int range value are -32767 to +32767
http://www.ericgiguere.com/articles/ansi-c-summary.html
And I was wondering why it does not follow the $-1 * 2^{N-1}\ to\ 2^{N-1}-1$ range encoding
Because your source has a typo? Have a look into /usr/include/stdint.h that is what runs on your system... #define INT16_MAX 32767 #define INT16_MIN -32768
Now I have three questions: - is two complement used to manage small integers at VM level?
It is done at the hardware level.
Since C does not specify many things including signed overflows, I would assume they just map directly onto what the hardware provides. And for all practical purposes, two's complement is the standard. I am not aware of anything mainstream using one's complement.
Now doing 5 - 15 does not (or I miss something ilke always subtracting the smaller one and taking the two complement of the smallerâ¦) so does anybody has the answer on how to perform 5 - 15 ?
http://en.wikipedia.org/wiki/Two%27s_complement#Subtraction Regards Stefan -- Stefan Marr Software Languages Lab Vrije Universiteit Brussel Pleinlaan 2 / B-1050 Brussels / Belgium http://soft.vub.ac.be/~smarr Phone: +32 2 629 2974 Fax: +32 2 629 3525