Decimal Arithmetic

Computers resort to binary arithmetic to have a reduced number of components in order to save area on silicon and to reduce the space of the system. However, humans are used to deal with the decimal system and, sometimes, binary arithmetic is not so accurate in performing computation of decimals.

Binary floating-point cannot exactly represent decimal fractions. For example
10% = 10/100 = (0.1)10 = (0.0001100110011001100110011001 .... )2

For these reasons, financial applications implement decimal arithmetic operations in software and run much slower than the corresponding binary operations.

Nowadays, because of the shrinking of devices, it is realistic to design arithmetic units working in decimal arithmetic and to speed up operations done in the decimal system by several times. In the 2008 revision of IEEE standard 754, the specification to represent decimal floating-point numbers was added to the binary one.

Read more ...

Work in the area

Decimal Floating-Point Unit

Decimal Division (DPD/BCD)1

Decimal Division (BID)2

2 BID is Binary Integer Decimal.

Decimal Multiplication (DPD/BCD)

  • T. Lang and A. Nannarelli. "A Radix-10 Combinational Multiplier", Proc. of 40th Asilomar Conference on Signals, Systems, and Computers, p. 313-317. Asilomar Hotel and Conference Grounds, Pacific Grove, CA, USA. October 29 - November 1, 2006.

  • L. Dadda and A. Nannarelli. "A Variant of a Radix-10 Combinational Multiplier", Proc. of 2008 IEEE International Symposium on Circuits and Systems (ISCAS), p. 3370-3373. Seattle, USA. May 18-21, 2008.

Alberto Nannarelli