我試圖在字符串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到文本轉換