我有一個函數,其中計算值可以達到比由MS表示的無符號__int64範圍更高的值18,446,744,073,709,551,615。如何測試一個數字是否超出了該範圍?我已經將int轉換爲char,並通過使用strlen檢查長度來嘗試進行測試。但是,一些長度超過指定長度的值:例如if(strlen(charvar)> 17)神祕地逃脫。那麼如何有效地測試?如何測試無符號__int64數字是否超出範圍
回答
如果你可以用一個現代的編譯器或升壓,然後lexical_cast
將做的工作:
uint64_t bigint;
try {
bigint = lexical_cast<uint64_t>(str);
} catch (std::bad_lexical_cast &e) {
// do whatever you want to do when the string isn't valid;
}
// Safely use bigint
見this link爲Boost庫。你絕對可以得到這VS 2008。
如果這只是Windows,你也可以看看_atoi64
之類的。見msdn。如果出現上溢/下溢,則返回I64_MAX
和I64_MIN
。
我得到錯誤C2065:'lexical_cast':未聲明的標識符,所以我需要安裝Boost我想。如果沒有簡單的解決方案,我可能會嘗試找到替代方案(我可以測試圖像中數字的寬度)。無論如何,Thx爲您提供幫助! – user1331044
你需要轉移到VS2012(VC 11)才能從工作室獲得這些。 Boost將把它們放在'boost ::'命名空間中。但'_atoi64'就足夠了。 – sfjac
_atoi64聽起來很有希望。我會試一試。 – user1331044
- 1. 無符號長整數超出範圍?
- 2. 測試超出範圍
- 3. 如何使用Objective-C測試數字是否在範圍內?
- 4. 如何測試數字是否在特定範圍內?
- 5. 如何檢測ScrollViewer是否超出其可用範圍
- 6. 如何檢查數組索引是否超出範圍SWIFT
- 7. 如何檢查二維數組是否超出範圍?
- 8. 如何檢查數組索引是否超出範圍?
- 9. 如何測試Swift中的索引超出範圍?
- 10. 我試圖檢查索引是否超出範圍,但我使用的代碼是索引超出範圍?
- 11. IndexError:字符串索引超出範圍?
- 12. 字符串索引超出範圍:-1。
- 13. NSMutable字符串 「超出範圍」
- 14. 字符串索引超出範圍:-1
- 15. Django字符串索引超出範圍
- 16. IndexError:字符串索引超出範圍
- 17. 字符串下標超出範圍(C++)
- 18. 字符串索引超出範圍?
- 19. 字符串下標超出範圍
- 20. 字符串索引超出範圍:-2
- 21. 字符串索引超出範圍 - Python
- 22. 字符串索引超出範圍
- 23. Java字符串索引超出範圍
- 24. 字符串索引超出範圍:-21
- 25. java:字符串索引超出範圍
- 26. java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍
- 27. xmlEscapeEntities:字符超出範圍 - 錯誤
- 28. C++字符串下標超出範圍
- 29. 字符串索引超出範圍:java
- 30. Java DataInputStream字符串超出範圍:0
這是爲了將字符串轉換爲數字嗎?什麼語言? (類C,但是C或C++?) – sfjac
C++,它用於在OpenCV中顯示圖像中的值(因此我需要使用_ui64toa將它們轉換爲char)。我只想顯示「正確的」。顯示它們是沒有問題的,但是如果我使用strlen函數來清除有問題的函數,它並不總是有效。 – user1331044
VS 2008,什麼是提升?請看看,這是不是有一些簡單的測試方法?如果我可以測試數字數字超過19或18,那就足夠了。 – user1331044