Author: Peter Fenwick

Introduction to Computer Data Representation

eBook: US $49 Special Offer (PDF + Printed Copy): US $143
Printed Copy: US $119
Library License: US $196
ISBN: 978-1-60805-883-9 (Print)
ISBN: 978-1-60805-882-2 (Online)
Year of Publication: 2014


Introduction to Computer Data Representation introduces readers to the representation of data within computers. Starting from basic principles of number representation in computers, the book covers the representation of both integer and floating point numbers, and characters or text. It comprehensively explains the main techniques of computer arithmetic and logical manipulation. The book also features chapters covering the less usual topics of basic checksums and ‘universal’ or variable length representations for integers, with additional coverage of Gray Codes, BCD codes and logarithmic representations. The description of character coding includes information on both MIME and Unicode formats. Introduction to Computer Data Representation also includes historical aspects of data representation, explaining some of the steps that developers took (and the mistakes they made) that led to the present, well-defined and accepted standards of data representation techniques. The book serves as a primer for advanced computer science graduates and a handy reference for anyone wanting to learn about numbers and data representation in computers.


This book arose from lectures on data representation given to First year Com- puter Science students at the University of Auckland. But then it grew as I realised that ever-more material seemed relevant, useful, or just interesting. To a large extent it rejects my own journey through computing from about 1964–2004, starting from logic design, through computer hardware, computer arithmetic and data communications into, Finally, data compression. Thus the computers that I reference are largely those with which I have at least passing experience. (There are of course many others that I have not encountered, but few of these are mentioned.) And the footnotes and asides often come from personal experience; many are distant recollections which I cannot now attribute. A comment made by one person who read this book was “This is an area that everybody thinks they know, but really nobody really knows very well”. While most elementary Computer Science books certainly describe some data representation (usually restricted to current “best practice”), and other books give great detail of specialised topics such as ?oating point, there seems to be a great gap in the middle. It is this gap, giving reasonable coverage of most data types from first principles, that I hope this book supplies. It deals mostly with data at the architectural level, with no mention of the trees, lists etc as normally covered in Data Structures courses. The main exception here is the description of text strings – characters are of little inter- est in isolation; strings are the usual entity to be manipulated and are often regarded as a data primitive. It also includes a comprehensive coverage of variable-length integer representations and of checksums, both topics which seem to have little overall coverage in the general literature.

Peter Fenwick
The University of Auckland,
New Zealand (retired)
email :


The book was started while I was employed at the University of Auckland, but with no explicit support.

I acknowledge the assistance from Brian Hicks and Murray Johns who, many years ago, introduced me to computers, and some of whose insights are still present in this book. Bob Doran, Amos Omondi and Brian Carpenter read early drafts and suggested valuable extra topics. Assistance was also received from Prof F.P. Brooks, Dr R.F. Rice and Jørgen Ibsen. Special thanks go to Jim Goodman who provided many useful comments while preparing the Foreword. And last but not least Brenda, who has endured many years (probably far too many!) of “The Book”.

Conflicts of Interest

There are no conflicts of interest.


.Multi-Objective Optimization In Theory and Practice II: Metaheuristic Algorithms.
.Arduino and SCILAB based Projects.
.Arduino meets MATLAB: Interfacing, Programs and Simulink.
.Budget Optimization and Allocation: An Evolutionary Computing Based Model.