Posts tagged numbers project

Bitwise Operators and Negative Numbers

When representing integers using a fixed number of bits, negative numbers are typically represented using two’s complement. If using n bit numbers, the two’s complement of a number x with 0 ≤ x < 2n is (-x) mod 2n = 2n – x. But what do you do if you want to work with unbounded/multiple-precision [...]

Release: Sputsoft Numbers 0.2 (formerly SputArithmetic)

I am very excited about this release. The library has been redesigned and almost everything has been rewritten. Even the name has changed, it is now called Sputsoft Numbers (instead of SputArithmetic).

Computing the Greatest Common Divisor

The greatest common divisor of two integers is the largest positive integer that divides them both. This article considers two algorithms for computing gcd(u,v), the greatest common divisor of u and v [...]

Release: SputArithmetic 0.1

This is the first release of the SputArithmetic library. You can download the library or read about it.

Implementing Multiple-Precision Arithmetic, Part 2

Introduction This article is a follow-up to part 1 where multiple-precision addition, subtraction, and multiplication for non-negative integers was discussed. This article deals with division. Again, the theoretic foundation is based on Section 4.3.1, The Classical Algorithms, of The Art of Computer Programming, Volume 2, by Donald E. Knuth.

Implementing Multiple-Precision Arithmetic, Part 1

This article is the first in a series dealing with algorithms for multiple-precision arithmetic. The goal is to present both a theoretical foundation with high-level algorithm descriptions (based on Section 4.3.1, The Classical Algorithms, of The Art of Computer Programming, Volume 2, by Donald E. Knuth) and a portable C++ implementation of the algorithms. The theory and high-level algorithms will be quite universal and generic, whereas the presented code will be just one way to implement the algorithms in a specific programming language.