CInt96 v1.04 - 96 位整数






4.75/5 (3投票s)
2000 年 3 月 4 日

52349

889
一个免费的 MFC 类,提供 96 位整数。
引言
如果您曾经进行过超出 Visual C++ 内置__int64
数据类型限制的算术运算,那么这个类可以为您提供额外的 4 个字节来使用。
特点 |
用法 |
历史 |
增强功能 |
联系作者 |
特点
- 提供构造函数,用于在所有基本类型(包括
__int64
)和CInt96
之间进行转换。 - 提供了所有标准运算符,允许将该类像基本数据类型一样使用。
- 提供了将字符串转换为十六进制、二进制和十进制字符串的方法。
- 提供了函数,可以轻松设置或检索单个位。
源 zip 文件包含 CInt96
源代码和一个简单的控制台程序,用于测试该类。
用法
- 要在您的代码中使用该类,只需在您的项目中包含 int96.cpp,并在需要调用类的方法的模块中包含
#include int96.h
。 - 您的代码需要静态或动态地包含 MFC。
- 要查看该类的实际应用,请查看模块 test.cpp 中的
main()
代码。
历史
v1.0 (1999 年 7 月 11 日)- 首次公开发布。
V1.01 (1999 年 10 月 17 日)
- 修复了函数
FormatAsDecimal()
在数字以 "10" 开头时失败的问题。
V1.02 (1999 年 10 月 26 日)
- 修复了
operator!=
中的错误。 - 修复了
operator^
中的错误。 - 修复了
operator|
中的错误。 - 修复了
operator&
中的错误。 - 所有关系和相等运算符现在返回
int
而不是BOOL
。 - 提供了转换为基本 C 类型的运算符。
- 改进了
operator*
的性能。 - 修复了 0/0 返回 0 而不是正确值未定义(即,除以 0 异常)的问题。感谢 G.J.E. Visser 发现了所有这些错误 <g>。
V1.03 (1999 年 10 月 28 日)
- 修复了
operator!=
中的另一个错误。 - 删除了
MAXDWORD
的使用,并替换为 0xFFFFFFFF。
V1.04 (1999 年 12 月 5 日)
- 修复了
operator*
在某些情况下给出不正确结果的问题。感谢 G.J.E. Visser 发现了这个问题。
计划增强功能
- 通过使用内联和改进的算法来优化代码。
- 将类泛化为任意精度。
- 改进了示例应用程序,因为它目前只测试了
CInt96
提供的大部分方法。 - 如果您有任何其他建议的补充, 意见或错误修复,请告诉我,以便我尽力将它们合并到下一版本的
CInt96
中。
联系作者
PJ Naughter电子邮件: pjn@indigo..ie
网站:http://www.naughter.com
1999 年 12 月 5 日