>
> For those still following this thread, and looking for more examples
> of the infinite representations of numbers ;-), here is another...
>
> Instead of a binary fixed point, you can use a binary number with an
> implicit decimal fixed point. For example, if your implicit decimal
> point were 10^2, the number 345 (stored as a binary integer) would
> represent the number 3.45. Concretely in C syntax, you'd print numbers
> as printf("%d.%02u", x/100, x%100). Addition and subtraction can be
> done with the integer operators. Multiplication and division take some
> care to avoid loss of range or precision, but abstractly, multiply is
> (x * y) / 100 and divide is (x * 100) / y. This is a neat hack to
> maintain fixed decimal accuracy with binary integers.
>
> > These values can also be stored as arbitrary precision integers,
> > which store multiple integers words to represent the value which can
> > again be interpreted as a fixed point fraction, or as BCD (binary
> > coded decimal) values which store 2 digits per byte.
>
> Storing numbers as *two* arbitrary precision integers, a numerator and
> a denominator, gives you all the exact rationals (at least as big as
> your memory allows -- reducing the numbers helps). Common Lisp and Scheme
> have rationals as well as real, complex, and arbitrary precision
> integer numbers. http://mathworld.wolfram.com/RationalNumber.html



There was also a proposed numbering system where the radix was
variable and was given by prime numbers. Pretty wild stuff but I've
never seen an implementation.

Reply via email to