我试图在字符串509951644
和4099516441
上调用atoi。第一个转换没有任何问题。第二个是给我十进制值2,147,483,647(0x7FFFFFFF)。这是为什么发生?atoi()不能正确转换
2
A
回答
3
你的第二个整数正在创建一个溢出。最大32位有符号整数是2147483647.
无论如何一般不推荐使用atoi
;而是使用strtol
,这实际上会告诉您您的值是否超出范围。 (中atoi
的行为是不确定当输入超出范围。您似乎是简单地吐出最大int
值)
你也可以检查你的编译器有点像atoi64
功能,这将让您使用64位值。
0
2147483647是C(signed)中的最大整数值。它给出了最大值,它可以...原始值太大而无法转换为signed int。我建议查找如何转换为无符号整型。
相关问题
- 1. atoi不正确地转换字符串?
- 2. Coffeescript不能正确转换
- 3. 的atoi功能不能正常工作
- 4. UIImage不能正确转换NSData
- 5. 为什么不能正确转换?
- 6. ObjectInputStream不能正确转换对象
- 7. 对象在wpf中转换转换后不能正确旋转?
- 8. 为什么atoi函数不能将const char *转换为int?
- 9. Swift 3中的自定义转换不能正确转换
- 10. NSDateFormatter不正确转换
- 11. 转换不正确时区
- 12. Time.zone.parse不正确转换
- 13. CSS转换不正确
- 14. 双PyFloat转换不正确
- 15. 不正确的转换长
- 16. 这不能正确切换
- 17. 在Python中切换字典不能正确转换int和str
- 18. 转换字符数组ATOI失败
- 19. 用atoi()读取数字的语法不正确
- 20. XSD到XML转换是不正确的
- 21. 时刻不转换正确的日期
- 22. Openlayers:不正确的转换坐标?
- 23. PHP strtotime不正确的转换
- 24. 转换FileVersion ToDouble时格式不正确
- 25. ArrayList.toArray()不转换为正确的类型?
- 26. Java的转换不正确的时代
- 27. JSF不正确的BigDecimal转换
- 28. 在iOS Swift中转换不正确?
- 29. PHP日期不正确转换
- 30. 不正确的PDF到文本转换