1
Boolean Logic & Boolean Logic & Number SystemsNumber Systems
Today:
• Some Announcements
• First Hour: Introduction to Logic– Section 1.2, 1.3 of Katz’s Textbook
– In-class Activity #1
• Second Hour: Number Systems– Appendix A.1 and A.2 of Katz’s Textbook
– In-class Activity #2
2
Some AnnouncementsSome Announcements
• An electronic copy of Katz’s textbook is on the website!
• Wait-listed students can now login– User name = ecse2610_stu
– Password = ecse2610_stu
3
Truth TablesTruth Tables
X Y X OR Y
0 0 1 1
0 1 0 1
0 1 1 1
X NOT X
0 1
1 0
0 0 1 1
X Y
0 1 0 1
0 0 0 1
X AND Y
Z = X •Y = X Y
Z = X + Y
Z = X
Boolean Boolean EquationsEquations
Inverter
ZX
OR
XY
Z
ANDXY Z
GatesGates
4
Example Truth TablesExample Truth TablesHalf adder adds two binary digits to form Sum and Carry
A B 0 0 1 1
0 1 0 1
Sum Carry 0 1 1 0
0 0 0 1
Sum equals A plus B (modulo 2)
Carry equals (A plus B minus Sum)/2
Sum equals A plus B (modulo 2)
Carry equals (A plus B minus Sum)/2
Full adder adds two binary digits and Carry in (Cin) to form Sum and Carry Out (Cout)
A 0 0 0 0 1 1 1 1
B 0 0 1 1 0 0 1 1
C in 0 1 0 1 0 1 0 1
S um 0 1 1 0 1 0 0 1
C out 0 0 0 1 0 1 1 1
Sum equals A plus B plus Cin (modulo 2)
Carry equals (A plus B plus Cin minus Sum)/2
Sum equals A plus B plus Cin (modulo 2)
Carry equals (A plus B plus Cin minus Sum)/2
5
Truth Tables to Equations Truth Tables to Equations
Carry
0001
A
0011
B
0101
Sum
0110
Sum = A B + A B
Carry = A B
Step 1: Identify each truth table row where the function value is 1
Step 2: Construct (ANDed) product terms of the inputs for these rows
If input variable is 0, it appears in complemented form
If 1, it appears un-complemented
Step3: “OR” together these product terms
Half adder
6
Full Adder ExampleFull Adder Example
Cout
00010111
A
00001111
B
00110011
Cin
01010101
Sum
01101001
Sum = A B Cin + A B Cin + A B Cin + A B Cin
Cout = A B Cin + A B Cin + A B Cin + A B Cin
7
1
1
Equations to Truth TablesEquations to Truth TablesConsider:Consider: Cout = A Cin + B Cin + A B
Verify the equivalence of this Boolean equation: compare this Cout with the original Cout truth table
Verify the equivalence of this Boolean equation: compare this Cout with the original Cout truth table
NoticeThis row is
covered 3 times
Each product term in the equation covers exactly two
rows in the truth table
Each product term in the equation covers exactly two
rows in the truth table
Put a 1 in each row
where product term
is true
Fill in rest of Cout with 0s
1
1
1
1
111
00010111
CoutA00001111
Cin01010101
B00110011
8
Equations to CircuitsEquations to Circuits
Carry = A B
Half Adder
A
B
Sum
CarryA B
Sum = A B + A B
A BB
A A B
9
Full AdderFull AdderCin B A
\Cin \ B \ A
A
B
Cin SUM
Cout
Cout = A B Cin + A B Cin + A B Cin + A B Cin
Sum = A B Cin + A B Cin + A B Cin + A B Cin
Notation:
\A = A, etc.
10
Equivalent CircuitsEquivalent CircuitsCin B A
\Cin \ B \ A
A
B
Cin SUM
Cout
A B
B C in
A C in
C out
Cout = A Cin + B Cin + A BCout = A B Cin + A B Cin + A B Cin + A B Cin
11
Some PracticalitiesSome PracticalitiesCin B A
\Cin \ B \ A
A
B
Cin SUM
Cout
A B
B C in
A C in
C out
"Rules of Composition" place limits on fan-in/fan-out"Rules of Composition" place limits on fan-in/fan-out
Fan-out
number of inputs a gate output is
connected to
Fan-in
number of inputs available
on a gate
12
Do Activity #1 NowDo Activity #1 Now
• Reference: –Section 1.2, 1.3 of Katz Textbook
13
• Most modern computers use logic circuits that exhibit two states (binary digital)
• Large binary numbers are unwieldy, so alternative representations are used.
• Hexadecimal numbers are a compromise between efficient representation and conversion to a more natural (to most humans) decimal system.
• It is important to understand these other bases when designing hardware and software.
Computers and NumbersComputers and Numbers
14
NotationNotation• Unless otherwise noted, the default base for
quantities is decimal (base 10)
• Subscripts following a quantity indicate the base
• Examples:
12310 is base 10 or decimal, so is 123
12316 is base 16 or hexadecimal
1012 is base 2 or binary
• Other notation (used later on in this course):
%101 is binary
$123 is hexadecimal
15
Uses 10 digits [ 0, 1, 2, . . . 9 ] Uses 10 digits [ 0, 1, 2, . . . 9 ]
Decimal Numbers Decimal Numbers
In general:
N = Ni x 10i where Ni [0, 1, 2, . . .8, 9],
where Ni are the weights and the base of the number
system is raised to the exponent i.
Note: decimal fractions occur when i is negative
0.35 = 3 x 10-1 + 5 x 10-2
In general:
N = Ni x 10i where Ni [0, 1, 2, . . .8, 9],
where Ni are the weights and the base of the number
system is raised to the exponent i.
Note: decimal fractions occur when i is negative
0.35 = 3 x 10-1 + 5 x 10-2
Positional Number NotationPositional Number Notation
Weight of digit determined by its position.
Positional Number NotationPositional Number Notation
Weight of digit determined by its position.
Example: 246 = 200 + 40 + 6
= 2 x 102 + 4 x 101 + 6 x 100
16
Binary NumbersBinary NumbersUses 2 digits [ 0 & 1 ] Uses 2 digits [ 0 & 1 ]
Example:
1110012 = 1000002 + 100002 + 10002 + 0002 + 002 + 12
= 1 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 0 x 21 + 1 x 20
= 1 x 32 + 1 x 16 + 1 x 8 + 0 x 4 + 0 x 2 + 1 x 1
= 5710
In general:
N = Ni x 2i where Ni [0, 1].
Note: binary fractions occur when i is negative
0.112 = 1x 2-1 + 1 x 2-2 = 0.510 + 0.2510 = 0.7510
In general:
N = Ni x 2i where Ni [0, 1].
Note: binary fractions occur when i is negative
0.112 = 1x 2-1 + 1 x 2-2 = 0.510 + 0.2510 = 0.7510
Positional Number NotationPositional Number NotationPositional Number NotationPositional Number Notation
17
Hexadecimal (Hex) NumbersHexadecimal (Hex) Numbers
Example:
89AB16 = 800016 + 90016 + A016 + B16
= 8 x 163 + 9 x 162 + A x 161 + B x 160
= 8 x 4096 + 9 x 256 + 10 x 16 + 11 x 1 = 3524310
Uses 16 digits [ 0, 1, 2, . . . 9, A, B, C, D, E, F ]Uses 16 digits [ 0, 1, 2, . . . 9, A, B, C, D, E, F ]
In general:
N = Ni x 16i where Ni [0, 1, 2, ..., 9, A, B, C, D, E, F].
Note: hexadecimal fractions occur when i is negative
0.9A16 = 9 x 16-1 + 10 x 16-2 = 0.562510 + 0.039062510 = 0.601562510
In general:
N = Ni x 16i where Ni [0, 1, 2, ..., 9, A, B, C, D, E, F].
Note: hexadecimal fractions occur when i is negative
0.9A16 = 9 x 16-1 + 10 x 16-2 = 0.562510 + 0.039062510 = 0.601562510
Note: A - F represent the decimal values of 10 - 15, respectively.Note: A - F represent the decimal values of 10 - 15, respectively.
Positional Number NotationPositional Number NotationPositional Number NotationPositional Number Notation
18
Conversion Among Bases Conversion Among Bases Conversion from any base to decimal:
Use positions and weights !
Eg: Decimal value = Ni x Bi where Ni [0, 1, 2, . . . NB-1]
( means “sum of”)
Eg: 89AB16= 8 x 4096 + 9 x 256 + 10 x 16 + 11 x 1 = 3524310
Conversion among the 2n bases (binary, hexadecimal, octal, etc.):
First convert to binary (base 2) & then regroup into n bits
Then convert the groups of bits into the proper digits.
19
Memorize this table!!!
It makes conversions
between hexadecimal and binary
trivial
Memorize this table!!!
It makes conversions
between hexadecimal and binary
trivial
Hexadecimal Hexadecimal Binary Binary
Hex Binary Decimal0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 9A 1010 10B 1011 11C 1100 12D 1101 13E 1110 14F 1111 15
Hex Binary Decimal0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 9A 1010 10B 1011 11C 1100 12D 1101 13E 1110 14F 1111 15
Example: convert 100110001110011012 hexadecimalGroup by 4s, starting at the right expand into 4 bit groups
1 0011 0001 1100 11012 1 3 1 C D16
Example: convert 100110001110011012 hexadecimalGroup by 4s, starting at the right expand into 4 bit groups
1 0011 0001 1100 11012 1 3 1 C D16
20
Decimal Decimal Binary Binary
Example:57 2 = 28, remainder = 1 (binary number will end with 1)28 2 = 14, remainder = 014 2 = 7, remainder = 0 7 2 = 3, remainder = 1 3 2 = 1, remainder = 1 1 2 = 0, remainder = 1 (binary number will start with 1)
Therefore, collecting the remainders, 5710 = 1110012
(((((0x2 + 1)x2 + 1)x2 + 1)x2 +0)x2 +0)x2 +1 = 1x32 + 1x16 + 1x8 + 0x4 + 0x2 + 1x1 = 57
(check: 32 + 16 + 8 + 0 + 0 + 1 = 57)
Based on the remainders after dividing the decimal number repeatedly by 2.
If the decimal number is even, the corresponding binary number will end in a 0, and if it is odd, the binary number will end in a 1, and so on.
Based on the remainders after dividing the decimal number repeatedly by 2.
If the decimal number is even, the corresponding binary number will end in a 0, and if it is odd, the binary number will end in a 1, and so on.
Successive Division:Successive Division: an easy way to convert Decimal to BinarySuccessive Division:Successive Division: an easy way to convert Decimal to Binary
21
Decimal Decimal Hex Hex
Example:35243 / 16= 2202, remainder = 11 B (hex number will end with B) 2202 / 16= 137, remainder = 10 A 137 / 16= 8, remainder = 9 8 / 16 = 0, remainder = 8 (hex number will start with 8)
Therefore, collecting the remainders, 3524310 = 89AB16
(check: 8 x 4096 + 9 x 256 +10 x 16 + 11 = 35243)
Successive Division:Successive Division: an easy way to convert Decimal to HexadecimalSuccessive Division:Successive Division: an easy way to convert Decimal to Hexadecimal
Based on the remainders after dividing the decimal number by higher powers of 16.
Based on the remainders after dividing the decimal number by higher powers of 16.
Notice how simple this method isNotice how simple this method is
22
Hex Hex Decimal Decimal
Example:BA89 B x 163 + A x 162 + 8 x 16 + 9
(CAUTION: mixed bases)
= 11 x 4096 + 10 x 256 + 8 x 16 + 9= 45056 + 2560 + 128 + 9= 47753
We can check by converting back to hex:
47753 / 16 = 2984 + remainder, 9
2984 / 16 = 186 + remainder, 8
186 / 16 = 11 + remainder, 10 A
11 / 16 = 0 + remainder, 11 B
4775310 BA8916
Multiplication:Multiplication: an easy way to convert Hexadecimal to DecimalMultiplication:Multiplication: an easy way to convert Hexadecimal to Decimal
Multiply the hexadecimal weights by powers of 16. Multiply the hexadecimal weights by powers of 16.
23
Binary Binary Decimal Decimal
Compare:
110101102 27 + 26 + 24 + 22 + 2 (exploiting the binary weights)= 128 + 64 + 16 + 4 + 2= 21410
110101102 D616 13 x 16 + 6 = 208 + 6 = 21410
Multiplication:Multiplication: an easy way to convert Binary to DecimalMultiplication:Multiplication: an easy way to convert Binary to Decimal
We can multiple the binary weights by powers of 2.
However, sometimes it is just as easy to convert the binary number to hexadecimal first and and then into decimal.
We can multiple the binary weights by powers of 2.
However, sometimes it is just as easy to convert the binary number to hexadecimal first and and then into decimal.
24
Do Activity #2 NowDo Activity #2 NowDue: End of Class Today
RETAIN THE LAST PAGE (#3)!!
For Next Class:• Bring Randy Katz Textbook
– Course website has an electronic copy available.
• Required Reading:– Sec A.1, A.2, 2.1, 2.2 (up to 2.2.4) of Katz
• This reading is necessary for getting points in the Studio Activity!
• Studio Session #2 Tuesday/Wednesday