CInt96 v1.04 - 96 Bit Integers






4.75/5 (3 votes)
Mar 4, 2000

51900

889
A Freeware MFC class which provides 96 bit integers.
Introduction
If you have every been doing any arithmetic which stretches the limits of the build in__int64
data type in Visual C++, then here is a class
which gives you an extra 4 bytes to play with.
Features |
Usage |
History |
Enhancements |
Contacting the Author |
- Provides constructors which convert between all the basic types (including
__int64
) toCInt96
. - All the standard operators are provided allowing the class to be used as if it was an intrinsic data type.
- Methods are provided to convert to and from Hex, binary and decimal strings.
- Functions are available to allow individual bits to be easily set or retrieved.
The source zip file contains the CInt96
source code and a simple console
program which exercises the class.
- To use the class in your code simply include int96.cpp in your project and
#include int96.h
in which ever of your modules needs to make calls to the classes. - Your code will need to include MFC either statically or dynamically.
- To see the class in action, have a look at the code in
main()
in the module test.cpp.
History
v1.0 (11 July 1999)
- Initial public release.
V1.01 (17 October 1999)
- Fix for the function
FormatAsDecimal()
which was failing when the number starts with a "10".
V1.02 (26 October 1999)
- Fixed bug in
operator!=
. - Fixed bug in
operator^
. - Fixed bug in
operator|
. - Fixed bug in
operator&
. - All relational and equality operators now return
int
instead ofBOOL
. - Provision of operators which convert back to basic C types.
- Improved the performance of
operator*
. - Fixed problem with 0/0 which was returning 0 instead of the correct value of undefined, i.e. divide by 0 exception. Thanks to G.J.E. Visser for finding all these bugs <g>.
V1.03 (28 October 1999)
- Fixed another bug in
operator!=
. - Removed the use of
MAXDWORD
and replaced with 0xFFFFFFFF.
V1.04 (5 December 1999)
- Fixed problem with
operator*
which was giving incorrect results in some cases. Thanks go to G.J.E. Visser for finding this.
- Optimize the code through the use of inlining and improved algorithms.
- Generalize the class to make it arbitrary precision.
- Improve the sample app as at the moment it just tests out most of the methods
provided by
CInt96
. - If you have any other suggested additions, comments or bug fixes,
please let me know so that I can try my best to incorporate them into the next
version of
CInt96
.
Contacting the Author
PJ Naughter
Email: pjn@indigo..ie
Web: http://www.naughter.com
5 December 1999