为什么小弟我使用atoi后数据值会变化呢
为什么我使用atoi后数据值会变化呢?
char A[20] = "5315658672";
int B = atoi(A);
为什么我使用atoi后; B的值就变成了2147483647而不是5315658672呢?
------解决方案--------------------
有符号数溢出
------解决方案--------------------
数据溢出了。int类型能保存的数据范围是 -2147483648 ~ 2147483647
------解决方案--------------------
数据溢出了,保存不了这大的数
------解决方案--------------------
atol 用这个
------解决方案--------------------
没有办法,瓶子都定义好了就是那么大,没办法装更多
------解决方案--------------------
int装不下的,可以试试 long long int(在windows下VC中也叫 __int64)
相应的转换函数也换个,不能继续用atoi了,参考它相关的函数,windows版的linux版的长整型表达不一样,函数名也不一样,都有相关库函数可用的
------解决方案--------------------
留名
char A[20] = "5315658672";
int B = atoi(A);
为什么我使用atoi后; B的值就变成了2147483647而不是5315658672呢?
------解决方案--------------------
有符号数溢出
------解决方案--------------------
数据溢出了。int类型能保存的数据范围是 -2147483648 ~ 2147483647
------解决方案--------------------
数据溢出了,保存不了这大的数
------解决方案--------------------
atol 用这个
------解决方案--------------------
没有办法,瓶子都定义好了就是那么大,没办法装更多
------解决方案--------------------
int装不下的,可以试试 long long int(在windows下VC中也叫 __int64)
相应的转换函数也换个,不能继续用atoi了,参考它相关的函数,windows版的linux版的长整型表达不一样,函数名也不一样,都有相关库函数可用的
------解决方案--------------------
留名