logo

Lessons In Electric Circuits, Volume IV { Digital)

Di®erent types of numbers ¯nd di®erent application in the physical world. Whole numbers work well for counting discrete objects, such as the number of resistors in a circuit. Integers are needed when negative equivalents of whole numbers are required. Irrational numbers are numbers that cannot be exactly expressed as the ratio of two integers, and the ratio of a perfect circle's circumference to its diameter (¼) is a good physical example of this. The non-integer quantities of voltage, current, and resistance that we're used to dealing with in DC circuits can be expressed as real numbers, in either fractional or decimal form. For AC circuit analysis,......
Fourth Edition, last update June 29, 2002 2 Lessons In Electric Circuits, Volume IV – Digital By Tony R. Kuphaldt Fourth Edition, last update June 29, 2002 i c 2000-2002, Tony R. Kuphaldt This book is published under the terms and conditions of the Design Science License. These terms and conditions allow for free copying, distribution, and/or modification of this document by the general public. The full Design Science License text is included in the last chapter. As an open and collaboratively developed text, this book is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MER- CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Design Science License for more details. PRINTING HISTORY • First Edition: Printed in June of 2000. Plain-ASCII illustrations for universal computer readability. • Second Edition: Printed in September of 2000. Illustrations reworked in standard graphic (eps and jpeg) format. Source files translated to Texinfo format for easy online and printed publication. • Third Edition: Printed in February 2001. Source files translated to SubML format. SubML is a simple markup language designed to easily convert to other markups like L TEX, HTML, or A DocBook using nothing but search-and-replace substitutions. • Fourth Edition: Printed in March 2002. Additions and improvements to 3rd edition. ii Contents 1 NUMERATION SYSTEMS 1 1.1 Numbers and symbols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Systems of numeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3 Decimal versus binary numeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.4 Octal and hexadecimal numeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.5 Octal and hexadecimal to decimal conversion . . . . . . . . . . . . . . . . . . . . . . 11 1.6 Conversion from decimal numeration . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2 BINARY ARITHMETIC 19 2.1 Numbers versus numeration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Binary addition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Negative binary numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.4 Subtraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.5 Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 2.6 Bit groupings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3 LOGIC GATES 29 3.1 Digital signals and gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 The NOT gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.3 The ”buffer” gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.4 Multiple-input gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.4.1 The AND gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.4.2 The NAND gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.4.3 The OR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4.4 The NOR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.4.5 The Negative-AND gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4.6 The Negative-OR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.4.7 The Exclusive-OR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.4.8 The Exclusive-NOR gate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.5 TTL NAND and AND gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.6 TTL NOR and OR gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 3.7 CMOS gate circuitry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.8 Special-output gates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.9 Gate universality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 iii iv CONTENTS 3.9.1 Constructing the NOT function . . . . . . . . . . . . . . . . . . . . . . . . . . 84 3.9.2 Constructing the ”buffer” function . . . . . . . . . . . . . . . . . . . . . . . . 85 3.9.3 Constructing the AND function . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.9.4 Constructing the NAND function . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.9.5 Constructing the OR function . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.9.6 Constructing the NOR function . . . . . . . . . . . . . . . . . . . . . . . . . . 88 3.10 Logic signal voltage levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 3.11 DIP gate packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 3.12 Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 4 SWITCHES 103 4.1 Switch types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.2 Switch contact design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 4.3 Contact ”normal” state and make/break sequence . . . . . . . . . . . . . . . . . . . 111 4.4 Contact ”bounce” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 5 ELECTROMECHANICAL RELAYS 119 5.1 Relay construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.2 Contactors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.3 Time-delay relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 5.4 Protective relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 5.5 Solid-state relays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 6 LADDER LOGIC 137 6.1 ”Ladder” diagrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 6.2 Digital logic functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 6.3 Permissive and interlock circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.4 Motor control circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5 Fail-safe design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 6.6 Programmable logic controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 7 BOOLEAN ALGEBRA 175 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 7.2 Boolean arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 7.3 Boolean algebraic identities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 7.4 Boolean algebraic properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183 7.5 Boolean rules for simplification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 7.6 Circuit simplification examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.7 The Exclusive-OR function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194 7.8 DeMorgan’s Theorems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 7.9 Converting truth tables into Boolean expressions . . . . . . . . . . . . . . . . . . . . 202 8 KARNAUGH MAPPING 221 9 COMBINATIONAL LOGIC FUNCTIONS 223 CONTENTS v 10 MULTIVIBRATORS 225 10.1 Digital logic with feedback . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225 10.2 The S-R latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 10.3 The gated S-R latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232 10.4 The D latch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233 10.5 Edge-triggered latches: Flip-Flops . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 10.6 The J-K flip-flop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240 10.7 Asynchronous flip-flop inputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242 10.8 Monostable multivibrators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 11 COUNTERS 249 11.1 Binary count sequence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 11.2 Asynchronous counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251 11.3 Synchronous counters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258 11.4 Counter modulus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264 12 SHIFT REGISTERS 265 13 DIGITAL-ANALOG CONVERSION 267 13.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 13.2 The R/2n R DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 13.3 The R/2R DAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272 13.4 Flash ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274 13.5 Digital ramp ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277 13.6 Successive approximation ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279 13.7 Tracking ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281 13.8 Slope (integrating) ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 13.9 Delta-Sigma (∆Σ) ADC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 285 13.10Practical considerations of ADC circuits . . . . . . . . . . . . . . . . . . . . . . . . . 287 14 DIGITAL COMMUNICATION 293 14.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293 14.2 Networks and busses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297 14.2.1 Short-distance busses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 14.2.2 Extended-distance networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 14.3 Data flow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301 14.4 Electrical signal types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 14.5 Optical data communication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306 14.6 Network topology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 14.6.1 Point-to-point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 14.6.2 Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 14.6.3 Star . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 14.6.4 Ring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 14.7 Network protocols . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310 14.8 Practical considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 vi CONTENTS 15 DIGITAL STORAGE (MEMORY) 315 15.1 Why digital? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315 15.2 Digital memory terms and concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 15.3 Modern nonmechanical memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 15.4 Historical, nonmechanical memory technologies . . . . . . . . . . . . . . . . . . . . . 320 15.5 Read-only memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326 15.6 Memory with moving parts: ”Drives” . . . . . . . . . . . . . . . . . . . . . . . . . . 326 16 PRINCIPLES OF DIGITAL COMPUTING 329 16.1 A binary adder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 16.2 Look-up tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 16.3 Finite-state machines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 16.4 Microprocessors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 16.5 Microprocessor programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341 17 ABOUT THIS BOOK 345 17.1 Purpose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345 17.2 The use of SPICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 17.3 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 18 CONTRIBUTOR LIST 349 18.1 How to contribute to this book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349 18.2 Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 18.2.1 Tony R. Kuphaldt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 18.2.2 Your name here . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 18.2.3 Typo corrections and other “minor” contributions . . . . . . . . . . . . . . . 351 19 DESIGN SCIENCE LICENSE 353 19.1 0. Preamble . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 19.2 1. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353 19.3 2. Rights and copyright . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 19.4 3. Copying and distribution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 19.5 4. Modification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 19.6 5. No restrictions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 19.7 6. Acceptance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 19.8 7. No warranty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355 19.9 8. Disclaimer of liability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 356 Chapter 1 NUMERATION SYSTEMS ”There are three types of people: those who can count, and those who can’t.” Anonymous 1.1 Numbers and symbols The expression of numerical quantities is something we tend to take for granted. This is both a good and a bad thing in the study of electronics. It is good, in that we’re accustomed to the use and manipulation of numbers for the many calculations used in analyzing electronic circuits. On the other hand, the particular system of notation we’ve been taught from grade school onward is not the system used internally in modern electronic computing devices, and learning any different system of notation requires some re-examination of deeply ingrained assumptions. First, we have to distinguish the difference between numbers and the symbols we use to represent numbers. A number is a mathematical quantity, usually correlated in electronics to a physical quantity such as voltage, current, or resistance. There are many different types of numbers. Here are just a few types, for example: WHOLE NUMBERS: 1, 2, 3, 4, 5, 6, 7, 8, 9 . . . INTEGERS: -4, -3, -2, -1, 0, 1, 2, 3, 4 . . . IRRATIONAL NUMBERS: π (approx. 3.1415927), e (approx. 2.718281828), square root of any prime REAL NUMBERS: (All one-dimensional numerical values, negative and positive, including zero, whole, integer, and irrational numbers) COMPLEX NUMBERS: 1 2 CHAPTER 1. NUMERATION SYSTEMS 3 - j4 , 34.5 20o Different types of numbers find different application in the physical world. Whole numbers work well for counting discrete objects, such as the number of resistors in a circuit. Integers are needed when negative equivalents of whole numbers are required. Irrational numbers are numbers that cannot be exactly expressed as the ratio of two integers, and the ratio of a perfect circle’s circumference to its diameter (π) is a good physical example of this. The non-integer quantities of voltage, current, and resistance that we’re used to dealing with in DC circuits can be expressed as real numbers, in either fractional or decimal form. For AC circuit analysis, however, real numbers fail to capture the dual essence of magnitude and phase angle, and so we turn to the use of complex numbers in either rectangular or polar form. If we are to use numbers to understand processes in the physical world, make scientific predictions, or balance our checkbooks, we must have a way of symbolically denoting them. In other words, we may know how much money we have in our checking account, but to keep record of it we need to have some system worked out to symbolize that quantity on paper, or in some other kind of form for record-keeping and tracking. There are two basic ways we can do this: analog and digital. With analog representation, the quantity is symbolized in a way that is infinitely divisible. With digital representation, the quantity is symbolized in a way that is discretely packaged. You’re probably already familiar with an analog representation of money, and didn’t realize it for what it was. Have you ever seen a fund-raising poster made with a picture of a thermometer on it, where the height of the red column indicated the amount of money collected for the cause? The more money collected, the taller the column of red ink on the poster. An analog representation of a numerical quantity $50,000 $40,000 $30,000 $20,000 $10,000 $0 This is an example of an analog representation of a number. There is no real limit to how finely divided the height of that column can be made to symbolize the amount of money in the account. Changing the height of that column is something that can be done without changing the essential nature of what it is. Length is a physical quantity that can be divided as small as you would like, with no practical limit. The slide rule is a mechanical device that uses the very same physical quantity – length – to represent numbers, and to help perform arithmetical operations with two or 1.1. NUMBERS AND SYMBOLS 3 more numbers at a time. It, too, is an analog device. On the other hand, a digital representation of that same monetary figure, written with standard symbols (sometimes called ciphers), looks like this: $35,955.38 Unlike the ”thermometer” poster with its red column, those symbolic characters above cannot be finely divided: that particular combination of ciphers stand for one quantity and one quantity only. If more money is added to the account (+ $40.12), different symbols must be used to represent the new balance ($35,995.50), or at least the same symbols arranged in different patterns. This is an example of digital representation. The counterpart to the slide rule (analog) is also a digital device: the abacus, with beads that are moved back and forth on rods to symbolize numerical quantities: Slide rule (an analog device) Slide Numerical quantities are represented by the positioning of the slide. Abacus (a digital device) Numerical quantities are represented by the discrete positions of the beads. Lets contrast these two methods of numerical representation: ANALOG DIGITAL ------------------------------------------------------------------ Intuitively understood ----------- Requires training to interpret Infinitely divisible -------------- Discrete 4 CHAPTER 1. NUMERATION SYSTEMS Prone to errors of precision ------ Absolute precision Interpretation of numerical symbols is something we tend to take for granted, because it has been taught to us for many years. However, if you were to try to communicate a quantity of something to a person ignorant of decimal numerals, that person could still understand the simple thermometer chart! The infinitely divisible vs. discrete and precision comparisons are really flip-sides of the same coin. The fact that digital representation is composed of individual, discrete symbols (decimal digits and abacus beads) necessarily means that it will be able to symbolize quantities in precise steps. On the other hand, an analog representation (such as a slide rule’s length) is not composed of individual steps, but rather a continuous range of motion. The ability for a slide rule to characterize a numerical quantity to infinite resolution is a trade-off for imprecision. If a slide rule is bumped, an error will be introduced into the representation of the number that was ”entered” into it. However, an abacus must be bumped much harder before its beads are completely dislodged from their places (sufficient to represent a different number). Please don’t misunderstand this difference in precision by thinking that digital representation is necessarily more accurate than analog. Just because a clock is digital doesn’t mean that it will always read time more accurately than an analog clock, it just means that the interpretation of its display is less ambiguous. Divisibility of analog versus digital representation can be further illuminated by talking about the representation of irrational numbers. Numbers such as π are called irrational, because they cannot be exactly expressed as the fraction of integers, or whole numbers. Although you might have learned in the past that the fraction 22/7 can be used for π in calculations, this is just an approximation. The actual number ”pi” cannot be exactly expressed by any finite, or limited, number of decimal places. The digits of π go on forever: 3.1415926535897932384 . . . . . It is possible, at least theoretically, to set a slide rule (or even a thermometer column) so as to perfectly represent the number π, because analog symbols have no minimum limit to the degree that they can be increased or decreased. If my slide rule shows a figure of 3.141593 instead of 3.141592654, I can bump the slide just a bit more (or less) to get it closer yet. However, with digital representation, such as with an abacus, I would need additional rods (place holders, or digits) to represent π to further degrees of precision. An abacus with 10 rods simply cannot represent any more than 10 digits worth of the number π, no matter how I set the beads. To perfectly represent π, an abacus would have to have an infinite number of beads and rods! The tradeoff, of course, is the practical limitation to adjusting, and reading, analog symbols. Practically speaking, one cannot read a slide rule’s scale to the 10th digit of precision, because the marks on the scale are too coarse and human vision is too limited. An abacus, on the other hand, can be set and read with no interpretational errors at all. Furthermore, analog symbols require some kind of standard by which they can be compared for precise interpretation. Slide rules have markings printed along the length of the slides to translate length into standard quantities. Even the thermometer chart has numerals written along its height to show how much money (in dollars) the red column represents for any given amount of height. Imagine if we all tried to communicate simple numbers to each other by spacing our hands apart varying distances. The number 1 might be signified by holding our hands 1 inch apart, the number 1.2. SYSTEMS OF NUMERATION 5 2 with 2 inches, and so on. If someone held their hands 17 inches apart to represent the number 17, would everyone around them be able to immediately and accurately interpret that distance as 17? Probably not. Some would guess short (15 or 16) and some would guess long (18 or 19). Of course, fishermen who brag about their catches don’t mind overestimations in quantity! Perhaps this is why people have generally settled upon digital symbols for representing numbers, especially whole numbers and integers, which find the most application in everyday life. Using the fingers on our hands, we have a ready means of symbolizing integers from 0 to 10. We can make hash marks on paper, wood, or stone to represent the same quantities quite easily: 5 + 5 + 3 = 13 For large numbers, though, the ”hash mark” numeration system is too inefficient. 1.2 Systems of numeration The Romans devised a system that was a substantial improvement over hash marks, because it used a variety of symbols (or ciphers) to represent increasingly large quantities. The notation for 1 is the capital letter I. The notation for 5 is the capital letter V. Other ciphers possess increasing values: X = 10 L = 50 C = 100 D = 500 M = 1000 If a cipher is accompanied by another cipher of equal or lesser value to the immediate right of it, with no ciphers greater than that other cipher to the right of that other cipher, that other cipher’s value is added to the total quantity. Thus, VIII symbolizes the number 8, and CLVII symbolizes the number 157. On the other hand, if a cipher is accompanied by another cipher of lesser value to the immediate left, that other cipher’s value is subtracted from the first. Therefore, IV symbolizes the number 4 (V minus I), and CM symbolizes the number 900 (M minus C). You might have noticed that ending credit sequences for most motion pictures contain a notice for the date of production, in Roman numerals. For the year 1987, it would read: MCMLXXXVII. Let’s break this numeral down into its constituent parts, from left to right: M = 1000 + CM = 900 + L = 50 + XXX = 30 + V = 5 6 CHAPTER 1. NUMERATION SYSTEMS + II = 2 Aren’t you glad we don’t use this system of numeration? Large numbers are very difficult to denote this way, and the left vs. right / subtraction vs. addition of values can be very confusing, too. Another major problem with this system is that there is no provision for representing the number zero or negative numbers, both very important concepts in mathematics. Roman culture, however, was more pragmatic with respect to mathematics than most, choosing only to develop their numeration system as far as it was necessary for use in daily life. We owe one of the most important ideas in numeration to the ancient Babylonians, who were the first (as far as we know) to develop the concept of cipher position, or place value, in representing larger numbers. Instead of inventing new ciphers to represent larger numbers, as the Romans did, they re-used the same ciphers, placing them in different positions from right to left. Our own decimal numeration system uses this concept, with only ten ciphers (0, 1, 2, 3, 4, 5, 6, 7, 8, and 9) used in ”weighted” positions to represent very large and very small numbers. Each cipher represents an integer quantity, and each place from right to left in the notation represents a multiplying constant, or weight, for each integer quantity. For example, if we see the decimal notation ”1206”, we known that this may be broken down into its constituent weight- products as such: 1206 = 1000 + 200 + 6 1206 = (1 x 1000) + (2 x 100) + (0 x 10) + (6 x 1) Each cipher is called a digit in the decimal numeration system, and each weight, or place value, is ten times that of the one to the immediate right. So, we have a ones place, a tens place, a hundreds place, a thousands place, and so on, working from right to left. Right about now, you’re probably wondering why I’m laboring to describe the obvious. Who needs to be told how decimal numeration works, after you’ve studied math as advanced as algebra and trigonometry? The reason is to better understand other numeration systems, by first knowing the how’s and why’s of the one you’re already used to. The decimal numeration system uses ten ciphers, and place-weights that are multiples of ten. What if we made a numeration system with the same strategy of weighted places, except with fewer or more ciphers? The binary numeration system is such a system. Instead of ten different cipher symbols, with each weight constant being ten times the one before it, we only have two cipher symbols, and each weight constant is twice as much as the one before it. The two allowable cipher symbols for the binary system of numeration are ”1” and ”0,” and these ciphers are arranged right-to-left in doubling values of weight. The rightmost place is the ones place, just as with decimal notation. Proceeding to the left, we have the twos place, the fours place, the eights place, the sixteens place, and so on. For example, the following binary number can be expressed, just like the decimal number 1206, as a sum of each cipher value times its respective weight constant: 11010 = 2 + 8 + 16 = 26 11010 = (1 x 16) + (1 x 8) + (0 x 4) + (1 x 2) + (0 x 1) This can get quite confusing, as I’ve written a number with binary numeration (11010), and then shown its place values and total in standard, decimal numeration form (16 + 8 + 2 = 26). In 1.3. DECIMAL VERSUS BINARY NUMERATION 7 the above example, we’re mixing two different kinds of numerical notation. To avoid unnecessary confusion, we have to denote which form of numeration we’re using when we write (or type!). Typically, this is done in subscript form, with a ”2” for binary and a ”10” for decimal, so the binary number 110102 is equal to the decimal number 2610 . The subscripts are not mathematical operation symbols like superscripts (exponents) are. All they do is indicate what system of numeration we’re using when we write these symbols for other people to read. If you see ”310 ”, all this means is the number three written using decimal numeration. However, if you see ”310 ”, this means something completely different: three to the tenth power (59,049). As usual, if no subscript is shown, the cipher(s) are assumed to be representing a decimal number. Commonly, the number of cipher types (and therefore, the place-value multiplier) used in a numeration system is called that system’s base. Binary is referred to as ”base two” numeration, and decimal as ”base ten.” Additionally, we refer to each cipher position in binary as a bit rather than the familiar word digit used in the decimal system. Now, why would anyone use binary numeration? The decimal system, with its ten ciphers, makes a lot of sense, being that we have ten fingers on which to count between our two hands. (It is inter- esting that some ancient central American cultures used numeration systems with a base of twenty. Presumably, they used both fingers and toes to count!!). But the primary reason that the binary numeration system is used in modern electronic computers is because of the ease of representing two cipher states (0 and 1) electronically. With relatively simple circuitry, we can perform mathematical operations on binary numbers by representing each bit of the numbers by a circuit which is either on (current) or off (no current). Just like the abacus with each rod representing another decimal digit, we simply add more circuits to give us more bits to symbolize larger numbers. Binary numeration also lends itself well to the storage and retrieval of numerical information: on magnetic tape (spots of iron oxide on the tape either being magnetized for a binary ”1” or demagnetized for a binary ”0”), optical disks (a laser-burned pit in the aluminum foil representing a binary ”1” and an unburned spot representing a binary ”0”), or a variety of other media types. Before we go on to learning exactly how all this is done in digital circuitry, we need to become more familiar with binary and other associated systems of numeration. 1.3 Decimal versus binary numeration Let’s count from zero to twenty using four different kinds of numeration systems: hash marks, Roman numerals, decimal, and binary: System: Hash Marks Roman Decimal Binary ------- ---------- ----- ------- ------ Zero n/a n/a 0 0 One | I 1 1 Two || II 2 10 Three ||| III 3 11 Four |||| IV 4 100 Five /|||/ V 5 101 Six /|||/ | VI 6 110 Seven /|||/ || VII 7 111 8 CHAPTER 1. NUMERATION SYSTEMS Eight /|||/ ||| VIII 8 1000 Nine /|||/ |||| IX 9 1001 Ten /|||/ /|||/ X 10 1010 Eleven /|||/ /|||/ | XI 11 1011 Twelve /|||/ /|||/ || XII 12 1100 Thirteen /|||/ /|||/ ||| XIII 13 1101 Fourteen /|||/ /|||/ |||| XIV 14 1110 Fifteen /|||/ /|||/ /|||/ XV 15 1111 Sixteen /|||/ /|||/ /|||/ | XVI 16 10000 Seventeen /|||/ /|||/ /|||/ || XVII 17 10001 Eighteen /|||/ /|||/ /|||/ ||| XVIII 18 10010 Nineteen /|||/ /|||/ /|||/ |||| XIX 19 10011 Twenty /|||/ /|||/ /|||/ /|||/ XX 20 10100 Neither hash marks nor the Roman system are very practical for symbolizing large numbers. Obviously, place-weighted systems such as decimal and binary are more efficient for the task. No- tice, though, how much shorter decimal notation is over binary notation, for the same number of quantities. What takes five bits in binary notation only takes two digits in decimal notation. This raises an interesting question regarding different numeration systems: how large of a number can be represented with a limited number of cipher positions, or places? With the crude hash-mark system, the number of places IS the largest number that can be represented, since one hash mark ”place” is required for every integer step. For place-weighted systems of numeration, however, the answer is found by taking base of the numeration system (10 for decimal, 2 for binary) and raising it to the power of the number of places. For example, 5 digits in a decimal numeration system can represent 100,000 different integer number values, from 0 to 99,999 (10 to the 5th power = 100,000). 8 bits in a binary numeration system can represent 256 different integer number values, from 0 to 11111111 (binary), or 0 to 255 (decimal), because 2 to the 8th power equals 256. With each additional place position to the number field, the capacity for representing numbers increases by a factor of the base (10 for decimal, 2 for binary). An interesting footnote for this topic is the one of the first electronic digital computers, the Eniac. The designers of the Eniac chose to represent numbers in decimal form, digitally, using a series of circuits called ”ring counters” instead of just going with the binary numeration system, in an effort to minimize the number of circuits required to represent and calculate very large numbers. This approach turned out to be counter-productive, and virtually all digital computers since then have been purely binary in design. To convert a number in binary numeration to its equivalent in decimal form, all you have to do is calculate the sum of all the products of bits with their respective place-weight constants. To illustrate: Convert 110011012 to decimal form: bits = 1 1 0 0 1 1 0 1 . - - - - - - - - weight = 1 6 3 1 8 4 2 1 (in decimal 2 4 2 6 notation) 8 1.4. OCTAL AND HEXADECIMAL NUMERATION 9 The bit on the far right side is called the Least Significant Bit (LSB), because it stands in the place of the lowest weight (the one’s place). The bit on the far left side is called the Most Significant Bit (MSB), because it stands in the place of the highest weight (the one hundred twenty-eight’s place). Remember, a bit value of ”1” means that the respective place weight gets added to the total value, and a bit value of ”0” means that the respective place weight does not get added to the total value. With the above example, we have: 12810 + 6410 + 810 + 410 + 110 = 20510 If we encounter a binary number with a dot (.), called a ”binary point” instead of a decimal point, we follow the same procedure, realizing that each place weight to the right of the point is one-half the value of the one to the left of it (just as each place weight to the right of a decimal point is one-tenth the weight of the one to the left of it). For example: Convert 101.0112 to decimal form: . bits = 1 0 1 . 0 1 1 . - - - - - - - weight = 4 2 1 1 1 1 (in decimal / / / notation) 2 4 8 410 + 110 + 0.2510 + 0.12510 = 5.37510 1.4 Octal and hexadecimal numeration Because binary numeration requires so many bits to represent relatively small numbers compared to the economy of the decimal system, analyzing the numerical states inside of digital electronic circuitry can be a tedious task. Computer programmers who design sequences of number codes instructing a computer what to do would have a very difficult task if they were forced to work with nothing but long strings of 1’s and 0’s, the ”native language” of any digital circuit. To make it easier for human engineers, technicians, and programmers to ”speak” this language of the digital world, other systems of place-weighted numeration have been made which are very easy to convert to and from binary. One of those numeration systems is called octal, because it is a place-weighted system with a base of eight. Valid ciphers include the symbols 0, 1, 2, 3, 4, 5, 6, and 7. Each place weight differs from the one next to it by a factor of eight. Another system is called hexadecimal, because it is a place-weighted system with a base of sixteen. Valid ciphers include the normal decimal symbols 0, 1, 2, 3, 4, 5, 6, 7, 8, and 9, plus six alphabetical characters A, B, C, D, E, and F, to make a total of sixteen. As you might have guessed already, each place weight differs from the one before it by a factor of sixteen. Let’s count again from zero to twenty using decimal, binary, octal, and hexadecimal to contrast these systems of numeration: Number Decimal Binary Octal Hexadecimal 10 CHAPTER 1. NUMERATION SYSTEMS ------ ------- ------- ----- ----------- Zero 0 0 0 0 One 1 1 1 1 Two 2 10 2 2 Three 3 11 3 3 Four 4 100 4 4 Five 5 101 5 5 Six 6 110 6 6 Seven 7 111 7 7 Eight 8 1000 10 8 Nine 9 1001 11 9 Ten 10 1010 12 A Eleven 11 1011 13 B Twelve 12 1100 14 C Thirteen 13 1101 15 D Fourteen 14 1110 16 E Fifteen 15 1111 17 F Sixteen 16 10000 20 10 Seventeen 17 10001 21 11 Eighteen 18 10010 22 12 Nineteen 19 10011 23 13 Twenty 20 10100 24 14 Octal and hexadecimal numeration systems would be pointless if not for their ability to be easily converted to and from binary notation. Their primary purpose in being is to serve as a ”shorthand” method of denoting a number represented electronically in binary form. Because the bases of octal (eight) and hexadecimal (sixteen) are even multiples of binary’s base (two), binary bits can be grouped together and directly converted to or from their respective octal or hexadecimal digits. With octal, the binary bits are grouped in three’s (because 23 = 8), and with hexadecimal, the binary bits are grouped in four’s (because 24 = 16): BINARY TO OCTAL CONVERSION Convert 10110111.12 to octal: . . implied zero implied zeros . | || . 010 110 111 100 Convert each group of bits --- --- --- . --- to its octal equivalent: 2 6 7 4 . Answer: 10110111.12 = 267.48 We had to group the bits in three’s, from the binary point left, and from the binary point right, adding (implied) zeros as necessary to make complete 3-bit groups. Each octal digit was translated from the 3-bit binary groups. Binary-to-Hexadecimal conversion is much the same: BINARY TO HEXADECIMAL CONVERSION 1.5. OCTAL AND HEXADECIMAL TO DECIMAL CONVERSION 11 Convert 10110111.12 to hexadecimal: . . implied zeros . ||| . 1011 0111 1000 Convert each group of bits ---- ---- . ---- to its hexadecimal equivalent: B 7 8 . Answer: 10110111.12 = B7.816 Here we had to group the bits in four’s, from the binary point left, and from the binary point right, adding (implied) zeros as necessary to make complete 4-bit groups: Likewise, the conversion from either octal or hexadecimal to binary is done by taking each octal or hexadecimal digit and converting it to its equivalent binary (3 or 4 bit) group, then putting all the binary bit groups together. Incidentally, hexadecimal notation is more popular, because binary bit groupings in digital equip- ment are commonly multiples of eight (8, 16, 32, 64, and 128 bit), which are also multiples of 4. Octal, being based on binary bit groups of 3, doesn’t work out evenly with those common bit group sizings. 1.5 Octal and hexadecimal to decimal conversion Although the prime intent of octal and hexadecimal numeration systems is for the ”shorthand” representation of binary numbers in digital electronics, we sometimes have the need to convert from either of those systems to decimal form. Of course, we could simply convert the hexadecimal or octal format to binary, then convert from binary to decimal, since we already know how to do both, but we can also convert directly. Because octal is a base-eight numeration system, each place-weight value differs from either adjacent place by a factor of eight. For example, the octal number 245.37 can be broken down into place values as such: octal digits = 2 4 5 . 3 7 . - - - - - - weight = 6 8 1 1 1 (in decimal 4 / / notation) 8 6 . 4 The decimal value of each octal place-weight times its respective cipher multiplier can be deter- mined as follows: (2 x 6410 ) + (4 x 810 ) + (5 x 110 ) + (3 x 0.12510 ) + (7 x 0.01562510 ) = 165.48437510
DMCA.com Protection Status Copyright by webtailieu.net