所以我在小端和大端机器上使用 strtoul 将字符串转换为无符号长整数。小端机器返回正确的值,而大端机器不返回。这个功能在大端机器上真的不兼容吗?如果是这样,是否有解决方法?
代码:
printf ("%s\n",cLongs);
theLongs[i] = strtoul(cLongs, NULL, 10);
cout << "returned unsigned long value from string: " << theLongs[i] << endl;
小端结果:
1099188638048931
returned unsigned long value from string: 1099188638048931
大端结果:
1099188638048931
returned unsigned long value from string: 4294967295
PS 对于 Big endian 示例,似乎总是返回相同的数字。