#include<stdlib.h>
#include<stdio.h>
int main(int argc, char *argv[])
{
if (argc != 2){
printf("usage: ./exe number_string\n");
}
const char *num_str = argv[1];
unsigned long num = strtoul(num_str, NULL, 10);
printf("%lu ==> %ld\n", num, (signed long)num);
return 0;
}
用gcc3.4.5编译。使用方法:
./exe 16208440240861898515
结果是:
16208440240861898515 ==> -2238303832847653101