Bibliography of material on Decimal Arithmetic [Index]

Decimal Arithmetic: Standards and Specifications

think 10

ANSI X3.53-l976: American National Standard – Programming Language PL/I, J. F. Auwaerter, 421pp, ANSI, 1976.
Abstract: This document defines American National Standard Programming Language PL/I and specifies both the form and interpretation of computer programs written in PL/I. The standard is intended to provide a high degree of machine independence and thereby facilitate program exchange among a variety of computing systems. The document serves as an authoritative reference rather than as a tutorial exposition. The language is defined by specifying a conceptual PL/I machine which translates and interprets intended PL/I programs. The relationship between an actual implementation of PL/I and the conceptual machine presented in this document is also given. This reference document was developed jointly under the auspices of the American National Standards Institute and the European Computer Manufacturers Association.
Note: Reaffirmed 1998.
ANSI X3.274-1996: American National Standard for Information Technology – Programming Language REXX, Brian Marks and Neil Milsted, 167pp, ANSI, February 1996.
Abstract: This standard provides an unambiguous definition of the programming language REXX. Its purpose is to facilitate portability of REXX programs for use on a wide variety of computer systems.
Note: Errata also available, as ANSI X3.274-1996/AM 1-2000.
Turbo Pascal Version 3.0 Reference Manual, Borland International, ISBN 0-87524-003-8, 386pp, Borland International, April 1985.
Abstract: Turbo Pascal 3 was the first Turbo Pascal version to support the Intel 8087 math co-processor (16-bit PC version). It also included support for Binary Coded Decimal (BCD) math to eliminate round off errors in business applications. Turbo Pascal 3 also allowed you to build larger programs (> 64k bytes) using overlays. The PC version also supported Turtle Graphics, Color, Sound, Window Routines, and more.
Burroughs B5500 Information Processing Systems Reference Manual, Burroughs Corporation, 224pp, Burroughs Corporation, Detroit, Michigan, 1964.
Abstract: This reference manual describes the hardware characteristics of the Burroughs B 5500 Information Processing System by presenting detailed information concerning the functional operation of the entire system. The B 5500 is a large-scale, high-speed, solid-state computer which represents a departure from the conventional computer system concept. It is a problem language oriented system rather than the conventional hardware oriented system. Because of the design concept of the B 5500, there exists a strong interdependence between the hardware and the Master Control Program which directs the system. The material presented herein pertains only to the hardware considerations, whereas the Master Control Program is discussed under separate cover.
A Proposed Radix- and Word-length-independent Standard for Floating-point Arithmetic, W. J. Cody, J. T. Coonen, D. M. Gay, K. Hanson, D. Hough, W. Kahan, R. Karpinski, J. Palmer, F. N. Ris, and D. Stevenson, IEEE Micro magazine, Vol. 4 #4, pp86–100, IEEE, August 1984.
Abstract: This article places [Draft 1.0 of IEEE 854] before the public for the first time. ... This article also includes material that describes how decisions were reached in preparing the P854 draft and explains how to overcome some of the implementation problems.
Note: Reprinted in ACM SIGNUM, Vol. 20, #1, pp35-51, 1985.
Densely Packed Decimal Encoding, Michael F. Cowlishaw, IEE Proceedings – Computers and Digital Techniques, Vol. 149 #3, ISSN 1350-2387, pp102–104, IEE, London, May 2002.
Abstract: Chen-Ho encoding is a lossless compression of three Binary Coded Decimal digits into 10 bits using an algorithm which can be applied or reversed using only simple Boolean operations. An improvement to the encoding which has the same advantages but is not limited to multiples of three digits is described. The new encoding allows arbitrary-length decimal numbers to be coded efficiently while keeping decimal digit boundaries accessible. This in turn permits efficient decimal arithmetic and makes the best use of available resources such as storage or hardware registers.
Decimal Floating-Point: Algorism for Computers, Michael F. Cowlishaw, Proceedings of the 16th IEEE Symposium on Computer Arithmetic, ISBN 0-7695-1894-X, pp104–111, IEEE, June 2003.
Abstract: Decimal arithmetic is the norm in human calculations, and human-centric applications must use a decimal floating-point arithmetic to achieve the same results.
    Initial benchmarks indicate that some applications spend 50% to 90% of their time in decimal processing, because software decimal arithmetic suffers a 100× to 1000× performance penalty over hardware. The need for decimal floating-point in hardware is urgent.
    Existing designs, however, either fail to conform to modern standards or are incompatible with the established rules of decimal arithmetic. This paper introduces a new approach to decimal floating-point which not only provides the strict results which are necessary for commercial applications but also meets the constraints and requirements of the IEEE 854 standard.
    A hardware implementation of this arithmetic is in development, and it is expected that this will significantly accelerate a wide variety of applications.

Note: Softcopy is available in PDF.
Atari System Reference Manual, section 11, Bob DuHamel, Atari, 1987.
Abstract: The routines which do floating point arithmetic are a part of the operating system ROM. The Atari computer uses the 6502’s decimal math mode. This mode uses numbers represented in packed Binary Coded Decimal (BCD). This means that each byte of a floating point number holds two decimal digits. The actual method of representing a full number is complicated and probably not very important to a programmer. However, for those with the knowledge to use it, the format is given below...
Note: 6 bytes: 10-digit BCD, 7-bit excess-64 exponent.
C# Language Specification, Rex Jaeschke, ECMA-TC39-TG2-2001, 520pp, ECMA, September 2001.
Abstract: This International Standard specifies the form and establishes the interpretation of programs written in the C# programming language. It specifies:
    The representation of C# programs;
    The syntax and constraints of the C# language;
    The semantic rules for interpreting C# programs;
    The restrictions and limits imposed by a conforming implementation of C#.

Note: Final draft submitted for ECMA GA approval December 2001.
The Introduction of the Euro and the Rounding of Currency Amounts, European Commission, 29pp, European Commission Directorate General II Economic and Financial Affairs, 1997.
Abstract: The rounding rules laid down in the legal framework of the euro are an integral part of the monetary law of the euro area. The legal equality of the euro unit and the national currency units is based on their application and the application of the conversion rates. The basic rules laid down in the Council Regulation (EC) No 1103/97 are...
IEEE 754-1985 IEEE Standard for Binary Floating-Point Arithmetic, David Stevenson et al, 20pp, IEEE, July 1985.
Abstract: This standard defines a family of commercially feasible ways for new systems to perform binary floating-point arithmetic. The issues of retrofitting were not considered.
    It is intended that an implementation of a floating-point system conforming to this standard can be realized entirely in software, entirely in hardware, or in any combination of software and hardware. It is the environment the programmer or user of the system sees that conforms or fails to conform to this standard. Hardware components that require software support to conform shall not be said to conform apart from such software.

Note: Reaffirmed 1991.
IEEE 854-1987 IEEE Standard for Radix-Independent Floating-Point Arithmetic, W. J. Cody et al, 14pp, IEEE, March 1987.
Abstract: It is intended that an implementation of a floating-point system conforming to this standard can be realized entirely in software, entirely in hardware, or in any combination of software and hardware. It is the environment the programmer or user of the system sees that conforms or fails to conform to this standard. Hardware components that require software support to conform shall not be said to conform apart from such software.
Note: Reaffirmed 1994.
ISO/IEC 9075:1992: Information Technology – Database Languages – SQL, Jim Melton et al, 626pp, ISO, 1992.
Abstract: This International Standard was developed from ISO/IEC 9075:1989, Information Systems, Database Language SQL with Integrity Enhancements, and replaces that International Standard. It adds significant new features and capabilities to the specifications. It is generally compatible with ISO/IEC 9075:1989, in the sense that, with very few exceptions, SQL language that conforms to ISO/IEC 9075:1989 also conforms to this International Standard, and will be treated in the same way by an implementation of this International Standard as it would by an implementation of ISO/IEC 9075:1989...
Note: Also available as ANSI INCITS 135-1992 (R1998).
ISO/IEC 8652:1995: Information Technology – Programming Languages – Ada (Ada 95 Reference Manual: Language and Standard Libraries), S. Tucker Taft and Robert A. Duff, ISBN 3-540-63144-5, 552pp, Springer-Verlag, July 1997.
Abstract: This International Standard specifies the form and meaning of programs written in Ada. Its purpose is to promote the portability of Ada programs to a variety of data processing systems.
Proposed Revision of ISO 1989:1985 Information technology – Programming languages, their environments and system software interfaces – Programming language COBOL, JTC-1/SC22/WG4, 905pp, INCITS, December 2001.
Abstract: COBOL began as a business programming language, but its present use has spread well beyond that to a general-purpose programming language. COBOL is well known for its file handling capabilities, which are extended in this revision by the addition of file sharing and record locking capabilities. Other major enhancements add object-oriented capabilities, handling of national characters, and enhanced interoperability with other programming languages.
    This is the proposed ISO/IEC 1989:2002 final draft.
MSDN Library Visual Basic 6.0 Reference, Microsoft Corporation, URL:, Microsoft Corporation, 2002.
Abstract: The contents of the Visual Basic Language Reference and Controls Reference includes topics on the controls, objects, properties, methods, events, statements, functions, and constants available.
    Additionally, this Reference contains topics on wizards, trappable errors, data types, keyboard shortcuts, and bi-directional programming.
BigDecimal (Java 2 Platform SE v1.4.0), Sun Microsystems, URL:, 17pp, Sun Microsystems Inc., 2002.
Abstract: Immutable, arbitrary-precision signed decimal numbers. A BigDecimal consists of an arbitrary precision integer unscaled value and a non-negative 32-bit integer scale, which represents the number of digits to the right of the decimal point. The number represented by the BigDecimal is (unscaledValue/10scale). BigDecimal provides operations for basic arithmetic, scale manipulation, comparison, hashing, and format conversion.
TI-86 Graphing Calculator Guidebook, Texas Instruments, 419pp, Texas Instruments, September 1997.
Abstract: User’s Guide for the TI-86 Graphing Calculator.
Note: Revised February 2001.
TI-89 TI-92 Plus Guidebook, Texas Instruments, 606pp, Texas Instruments, November 1999.
Abstract: User’s Guide for the TI-89 and TI-92 Plus Graphing Calculators.
Note: Revised February 2001.
TI-89/TI-92 Plus Developers Guide, Beta Version .02, Texas Instruments, 1356pp, Texas Instruments, 2001.
Note: Available from web site.
TI-89/TI-92 Plus Sierra C Assembler Reference Manual, Beta Version .02, Texas Instruments, 322pp, Texas Instruments, 2001.
Note: Available from web site.

The 21 references listed on this page are selected from the bibliography on Decimal Arithmetic collected by Mike Cowlishaw. Please see the index page for more details and other categories.

Last updated: 10 Mar 2011
Some elements Copyright © IBM Corporation, 2002, 2009. All rights reserved.