Some how I though long is 8 bytes (64 bits) and int is 4 bytes (32 bits). I
wonder what is the reason for long and int types if they both are 4 bytes
long.

"Scott Klement" <c400-l@xxxxxxxxxxxxxxxx> wrote in message
news:mailman.5528.1264804111.2580.c400-l@xxxxxxxxxxxxxxx
Hi Lim,

Because 2147483647 is the highest number that can be stored into a 'long'
variable in C. A 'long' is a 32-bit integer (10i 0 in RPG) and therefore
can support values from -2147483648 to 2147483647

Since 6027461692 is too high to fit in a 'long', it gives you the highest
that WILL fit.




On 1/29/2010 3:58 PM, Lim Hock-Chai wrote:
does anyone know why the result of this atol is 2147483647?

#include<string.h>
#include<stdio.h>
#include<stdlib.h>

int main(void) {

long num;
char *sBuf;

sBuf = "6027461692 ";
num = atol(sBuf); //=> why would this result in 2147483647?
exit(0);
}





This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].