我有一个函数,其中计算值可以达到比由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