65.9K
CodeProject 正在变化。 阅读更多。
Home

CInt96 v1.04 - 96 位整数

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.75/5 (3投票s)

2000 年 3 月 4 日

viewsIcon

52349

downloadIcon

889

一个免费的 MFC 类,提供 96 位整数。

  • 下载源文件 - 10 Kb
  • 引言

    如果您曾经进行过超出 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 日

    CInt96 v1.04 - 96 位整数 - CodeProject - 代码之家
    © . All rights reserved.