Download presentation
Presentation is loading. Please wait.
1
Chapter 4: The Building Blocks: Binary Numbers, Boolean Logic, and Gates Invitation to Computer Science, C++ Version, Third Edition
2
Invitation to Computer Science, C++ Version, Third Edition 2 Objectives In this chapter, you will learn about: The binary numbering system Boolean logic and gates Building computer circuits Control circuits
3
Invitation to Computer Science, C++ Version, Third Edition 3 Introduction Chapter 4 focuses on hardware design (also called logic design) How to represent and store information inside a computer How to use the principles of symbolic logic to design gates How to use gates to construct circuits that perform operations such as adding and comparing numbers, and fetching instructions
4
Invitation to Computer Science, C++ Version, Third Edition 4 The Binary Numbering System A computer’s internal storage techniques are different from the way people represent information in daily lives Information inside a digital computer is stored as a collection of binary data
5
Invitation to Computer Science, C++ Version, Third Edition 5 Binary numbering system Base-2 Built from ones and zeros Each position is a power of 2 1101 = 1 x 2 3 + 1 x 2 2 + 0 x 2 1 + 1 x 2 0 Decimal numbering system Base-10 Each position is a power of 10 3052 = 3 x 10 3 + 0 x 10 2 + 5 x 10 1 + 2 x 10 0 Binary Representation of Numeric and Textual Information
6
Invitation to Computer Science, C++ Version, Third Edition 6 Figure 4.2 Binary-to-Decimal Conversion Table
7
Invitation to Computer Science, C++ Version, Third Edition 7 Representing integers Decimal integers are converted to binary integers Given k bits, the largest unsigned integer is 2 k - 1 Given 4 bits, the largest is 2 4 -1 = 15 Signed integers must also represent the sign (positive or negative) Binary Representation of Numeric Information
8
Invitation to Computer Science, C++ Version, Third Edition 8 Representation of Numbers Signed integer representation Sign/magnitude notation 1 bit to represent the sign N bits to represent the integer Example: if n=8 + 33 is represented as 0 0100001 - 33 is represented as 1 0100001 + 1 is represented as 0 0000001 - 1 is represented as 1 0000001 What about 0? + 0 is represented as 0 0000000 - 0 is represented as 1 0000000 Big Problem!!! There are two representations for 0!!! Sign Magnitude 1 111 -7 1 110 -6 1 101 -5 1 100 -4 1 011 -3 1 010 -2 1 001 -1 1 000 -0 0 000 +0 0 001 +1 0 010 +2 0 011 +3 0 100 +4 0 101 +5 0 110 +6 0 111 +7
9
Invitation to Computer Science, C++ Version, Third Edition 9 Representation of Numbers Signed integer representation Two’s complement representation A positive number follows the sign/magnitude notation A negative number is obtained from the corresponding positive number in two steps: 1. Flip all the bits (0 becomes 1 and 1 becomes 0) 2. Add one to the result Example: if n=8 + 33 is represented as 0 0100001 - 33 {flip +33 (i.e. 1 1011110) and add 1 to it} 1 1011110 + 1 1 1011111 = - 33 Question: What about 0 this time?
10
Invitation to Computer Science, C++ Version, Third Edition 10 Representation of Numbers Advantages of the two’s complement representation One representation for the zero Easy subtractions Subtractions are simply additions The sign is embedded in the number! Example: Suppose we use 8 bits precision 15 0000 1111 - 5+ 1111 1011 + 10 1 0000 1010 Two’s complement 1 1111 -1 1 1110 -2 1 1101 -3 1 1100 -4 1 1011 -5 1 1010 -6 1 1001 -7 1 1000 -8 1 0111 -9 1 0110 -10 1 0101 -11 1 0100 -12 1 0011 -13 1 0010 -14 1 0001 -15 1 0000 -16 00000 +0 0 0001 +1 0 0010 +2 0 0011 +3 0 0100 +4 0 0101 +5 0 0110 +6 0 0111 +7 0 1000 +8 0 1001 +9 0 1010 +10 0 1011 +11 0 1100 +12 0 1101 +13 0 1110 +14 0 1111 +15 - 9 111 10111 - 5+ 111 11011 - 14 1111 10010 overflow
11
Invitation to Computer Science, C++ Version, Third Edition 11 Representation of Numbers Question 1: Given n bits, what is the interval I of numbers that we can represent? Answer: With sign/magnitude I = (-2 n-1, 2 n-1 ) Note: the interval is open on both sides! There are 2 distinct representations of the 0! With two’s complement I = [-2 n-1, 2 n-1 ) Note: the interval is open on one side! Question 2: With n bits, how many distinct numbers do we represent? Answer: 2 n distinct numbers
12
Invitation to Computer Science, C++ Version, Third Edition 12 Representation of Numbers Representation of Decimal numbers Real numbers may be put into binary Scientific notation Mantissa Bases Exponent Number then normalized so that first significant digit is immediately to the right of the binary point Example: Consider Binary number: +6.25 10 = +110.01 2 is Normalized as: +.11001 2 2 3
13
Invitation to Computer Science, C++ Version, Third Edition 13 Physical Representation of Numbers Assume that a number is stored in 16 bits 1 bit for the sign 9 bits for the mantissa 1 bit for the sign of the exponent 5 bits for the exponent +6.25 10 = +110.01 2 = +.11001 2 2 3 has 0 for the sign 1101 for the mantissa 0 for the sign of the exponent 3 for the exponent and in a 16 bits storage location is represented as 0110100000000011 Decimal point 01 1 0 0 1 0 0 0 000 0 0 1 1 Sign Mantissa Sign Exponent
14
Invitation to Computer Science, C++ Version, Third Edition 14 Physical Representation of Numbers: Examples 3/16 10 = 1/8+1/16 10 = +0.0011 2 = +.11 2 2 -2 has 0 for the sign 11 for the mantissa 1 for the sign of the exponent 2 for the exponent and in a 16 bits storage location is represented as 0110000000100010 -19/64 10 = 1/4+1/32+1/64 10 = -0.010011 2 = -.10011 2 2 -1 has 1 for the sign 10011 for the mantissa 1 for the sign of the exponent 1 for the exponent and in a 16 bits storage location is represented as 1100110000100001 11 0 0 1 1 0 0 0 010 0 0 0 1 Sign Mantissa Sign Exponent 01 1 0 0 0 0 0 0 010 0 0 1 0 Sign Mantissa Sign Exponent
15
Invitation to Computer Science, C++ Version, Third Edition 15 Characters are mapped onto binary numbers ASCII code set (look for the code in your book) 8 bits per character; 256 character codes UNICODE code set 16 bits per character; 65,536 character codes Text strings are sequences of characters in some encoding Binary Representation of Numeric and Textual Information (continued)
16
Invitation to Computer Science, C++ Version, Third Edition 16 Binary Representation of Sound and Images Multimedia data is sampled to store a digital form, with or without detectable differences Representing sound data Sound data must be digitized for storage in a computer Digitizing means periodic sampling of amplitude values
17
Invitation to Computer Science, C++ Version, Third Edition 17 Binary Representation of Sound and Images (continued) From samples, original sound may be approximated To improve the approximation: Sample more frequently Use more bits for each sample value
18
Invitation to Computer Science, C++ Version, Third Edition 18 Figure 4.5 Digitization of an Analog Signal (a) Sampling the Original Signal (b) Recreating the Signal from the Sampled Values
19
Invitation to Computer Science, C++ Version, Third Edition 19 Representing image data Images are sampled by reading color and intensity values at even intervals across the image Each sampled point is a pixel Image quality depends on number of bits at each pixel Binary Representation of Sound and Images (continued)
20
Invitation to Computer Science, C++ Version, Third Edition 20 The Reliability of Binary Representation Electronic devices are most reliable in a bistable environment Bistable environment Distinguishing only two electronic states Current flowing or not Direction of flow Computers are bistable: hence binary representations
21
Invitation to Computer Science, C++ Version, Third Edition 21 Magnetic core Historic device for computer memory Tiny magnetized rings: flow of current sets the direction of magnetic field Binary values 0 and 1 are represented using the direction of the magnetic field Binary Storage Devices
22
Invitation to Computer Science, C++ Version, Third Edition 22 Figure 4.9 Using Magnetic Cores to Represent Binary Values
23
Invitation to Computer Science, C++ Version, Third Edition 23 Transistors Solid-state switches: either permits or blocks current flow A control input causes state change Constructed from semiconductors Binary Storage Devices (continued)
24
Invitation to Computer Science, C++ Version, Third Edition 24 Figure 4.11 Simplified Model of a Transistor
25
Invitation to Computer Science, C++ Version, Third Edition 25 Boolean Logic and Gates: Boolean Logic Boolean logic describes operations on true/false values True/false maps easily onto bistable environment Boolean logic operations on electronic signals may be built out of transistors and other electronic devices
26
Invitation to Computer Science, C++ Version, Third Edition 26 Boolean Logic (continued) Boolean operations a AND b True only when a is true and b is true a OR b True when either a is true or b is true, or both are true NOT a True when a is false, and vice versa
27
Invitation to Computer Science, C++ Version, Third Edition 27 Boolean expressions Constructed by combining together Boolean operations Example: (a AND b) OR ((NOT b) AND (NOT a)) Truth tables capture the output/value of a Boolean expression A column for each input plus the output A row for each combination of input values Boolean Logic (continued)
28
Invitation to Computer Science, C++ Version, Third Edition 28 abValue 001 010 100 111 Example: (a AND b) OR ((NOT b) and (NOT a)) From Boolean Expression to Truth Table
29
Invitation to Computer Science, C++ Version, Third Edition 29 Gates Hardware devices built from transistors to mimic Boolean logic AND gate Two input lines, one output line Outputs a 1 when both inputs are 1
30
Invitation to Computer Science, C++ Version, Third Edition 30 Gates (continued) OR gate Two input lines, one output line Outputs a 1 when either input is 1 NOT gate One input line, one output line Outputs a 1 when input is 0 and vice versa
31
Invitation to Computer Science, C++ Version, Third Edition 31 Figure 4.15 The Three Basic Gates and Their Symbols
32
Invitation to Computer Science, C++ Version, Third Edition 32 Abstraction in hardware design Map hardware devices to Boolean logic Design more complex devices in terms of logic, not electronics Conversion from logic to hardware design may be automated Gates (continued)
33
Invitation to Computer Science, C++ Version, Third Edition 33 Building Computer Circuits: Introduction A circuit is a collection of logic gates: Transforms a set of binary inputs into a set of binary outputs Values of the outputs depend only on the current values of the inputs Combinational circuits have no cycles in them (no outputs feed back into their own inputs)
34
Invitation to Computer Science, C++ Version, Third Edition 34 Figure 4.19 Diagram of a Typical Computer Circuit
35
Invitation to Computer Science, C++ Version, Third Edition 35 A Circuit Construction Algorithm Sum-of-products algorithm is one way to design circuits: Step1: From Truth Table to Boolean Expression Step 2: From Boolean Expression to Gate Layout
36
Invitation to Computer Science, C++ Version, Third Edition 36 Figure 4.21 The Sum-of-Products Circuit Construction Algorithm
37
Invitation to Computer Science, C++ Version, Third Edition 37 Sum-of-products algorithm Truth table captures every input/output possible for circuit Repeat process for each output line Build a Boolean expression using AND and NOT for each 1 of the output line Combine together all the expressions with ORs Build circuit from whole Boolean expression A Circuit Construction Algorithm (continued)
38
Invitation to Computer Science, C++ Version, Third Edition 38 An application of Step 1 of the SOP algorithm: From Truth Table to Boolean Expression 1.Ignore rows where the output is 0. 2.Create the product of the selections in this way: for each row with output 1: - if the input is 1, select the variable name. - if the input is 0, select the NOT of the variable name. 3.Create the Boolean expression for the circuit by summing each of the products created in step 2. ==> This is the Boolean expression for the circuit to be constructed. a b a XOR b 0 0 0 1 0 1 0 1 1 1 1 0 ab’+a’b Note: a’=NOT a b’=NOT b
39
Invitation to Computer Science, C++ Version, Third Edition 39 Another example a b c output 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 0 1 1 1 a'b'c' + a'b’c + ab'c' + abc' + abc or output = a'b'c' + a'b’c +ab'c' + abc' + abc
40
Invitation to Computer Science, C++ Version, Third Edition 40 Examples Of Circuit Design And Construction Compare-for-equality circuit Addition circuit Both circuits can be built using the sum-of- products algorithm
41
Invitation to Computer Science, C++ Version, Third Edition 41 Compare-for-equality circuit CE compares two unsigned binary integers for equality Given two n-bit numbers, a = a 0 a 1 a 2 …a n-1 and b = b 0 b 1 b 2 …b n-1 output 1 if the numbers are the same and 0 if they are not Built by combining together 1-bit comparison circuits (1- CE) Integers are equal if corresponding bits are equal (AND together 1-CD circuits for each pair of bits) A Compare-for-equality Circuit
42
Invitation to Computer Science, C++ Version, Third Edition 42 1-CE circuit truth table Or output = a’b’+ab abOutput 001 010 100 111 A Compare-for-equality Circuit (continued)
43
Invitation to Computer Science, C++ Version, Third Edition 43 Figure 4.22 One-Bit Compare for Equality Circuit
44
Invitation to Computer Science, C++ Version, Third Edition 44 1-CE Boolean expression First case: (NOT a) AND (NOT b) Second case: a AND b Combined: ((NOT a) AND (NOT b)) OR (a AND b) A Compare-for-equality Circuit (continued)
45
Invitation to Computer Science, C++ Version, Third Edition 45 A Compare-for-equality Circuit (cont.) 1-CE Generalize the process by AND-ing together 1-CD circuits for each pair of bits The 1-CE circuit is represented by the box o o o o a 0 b 0 a 1 b 1 a 2 b 2 a n-1 b n-1 out 1-CE
46
Invitation to Computer Science, C++ Version, Third Edition 46 An Addition Circuit Addition circuit Adds two unsigned binary integers, setting output bits and an overflow Built from 1-bit adders (1-ADD) Starting with rightmost bits, each pair produces A value for that order (i.e. s i =a i +b i ) A carry bit for next place to the left (i.e. c i )
47
Invitation to Computer Science, C++ Version, Third Edition 47 1-ADD truth table Input One bit from each input integer One carry bit (always zero for rightmost bit) Output One bit for output place value One “carry” bit An Addition Circuit (continued)
48
Invitation to Computer Science, C++ Version, Third Edition 48 Figure 4.24 The 1-ADD Circuit and Truth Table
49
Invitation to Computer Science, C++ Version, Third Edition 49 The 1-bit adder
50
Invitation to Computer Science, C++ Version, Third Edition 50 Put rightmost bits into 1-ADD, with zero for the input carry Send 1-ADD’s output value to output, and put its carry value as input to 1-ADD for next bits to left. Repeat process for all bits. Building the full adder o o o o 1-ADD c 0 =0 a 0 b 0 a 1 b 1 a 2 b 2 a n-1 b n-1 s 0 =a 0 +b 0 s 2 = a 1 +b 1 s 2 = a 2 +b 2 s n-1 = a n-1 +b n-1 s n = c n c1c1 c2c2 c n-1 c3c3
51
Invitation to Computer Science, C++ Version, Third Edition 51 Control Circuits Do not perform computations Choose order of operations or select among data values Major types of controls circuits Decoders Sends a 1 on one output line, based on what input line indicates Multiplexors Select one of inputs to send to output We will use these control circuits while studying next chapter.
52
Invitation to Computer Science, C++ Version, Third Edition 52 Decoder Form N input lines 2 N output lines N input lines indicate a binary number, which is used to select one of the output lines Selected output sends a 1, all others send 0 Control Circuits (Decoder)
53
Invitation to Computer Science, C++ Version, Third Edition 53 Decoder purpose Given a number code for some operation, trigger just that operation to take place Numbers might be codes for arithmetic: add, subtract, etc. Decoder signals which operation takes place next Control Circuits (continued)
54
Invitation to Computer Science, C++ Version, Third Edition 54 Figure 4.29 A 2-to-4 Decoder Circuit
55
Invitation to Computer Science, C++ Version, Third Edition 55 Decoder Circuit A decoder is a control circuit which has N input and 2 N output A 3 to 2 3 example of decoder a b c o0 o1 o2 o3 o4 o5 o6 o7 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 a b c 0123456701234567
56
Invitation to Computer Science, C++ Version, Third Edition 56 Multiplexor form 2 N regular input lines N selector input lines 1 output line Multiplexor purpose Given a code number for some input, selects that input to pass along to its output Used to choose the right input value to send to a computational circuit Control Circuits (Multiplexor)
57
Invitation to Computer Science, C++ Version, Third Edition 57 Figure 4.28 A Two-Input Multiplexor Circuit
58
Invitation to Computer Science, C++ Version, Third Edition 58 Multiplexor Circuit with N input multiplexor circuit 2 N input lines 0 1 2 2 N -1 N selector lines output Interpret the selector lines as a binary number. Suppose that the selector line write the number 00….01 which is equal to 1. For our example, the output is the value on the line numbered 1.....
59
Invitation to Computer Science, C++ Version, Third Edition 59 Summary Digital computers use binary representations of data: numbers, text, multimedia Binary values create a bistable environment, making computers reliable Boolean logic maps easily onto electronic hardware Circuits are constructed using Boolean expressions as an abstraction Computational and control circuits may be built from Boolean gates
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.