0% found this document useful (0 votes)
3 views

chap2

Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

chap2

Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 51

ECE-110 Digital Systems

Number Systems, Operations and Codes


(Digital Fundamentals by T. Floyd, Chap.2)

George Gregoriou

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Numbers

The position of each digit in a weighted number system is


assigned a weight based on the base or radix of the system.
The radix of decimal numbers is ten, because only ten
symbols (0 through 9) are used to represent any number.

The column weights of decimal numbers are powers of ten


that increase from right to left beginning with 100 =1:
…105 104 103 102 101 100.

For fractional decimal numbers, the column weights are


negative powers of ten that decrease from left to right:
Floyd, Digital Fundamentals, 10th ed
102 101 100. 10-1 10-2 10-3 10-4 …
Summary
Decimal Numbers

Decimal numbers can be expressed as the sum of the


products of each digit times the column value for that digit.
Thus, the number 9240 can be expressed as
(9 x 103) + (2 x 102) + (4 x 101) + (0 x 100)
or
9 x 1000 + 2 x 100 + 4 x 10 + 0 x 1
Express the number 480.52 as the sum of values of each
digit.

480.52 = (4 x 102) + (8 x 101) + (0 x 100) + (5 x 10-1) +(2 x 10-2)

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Numbers
For digital systems, the binary number system is used.
Binary has a radix of two and uses the digits 0 and 1 to
represent quantities.

The column weights of binary numbers are powers of two


that increase from right to left beginning with 20 =1:
…25 24 23 22 21 20.

For fractional binary numbers, the column weights are


negative powers of two that decrease from left to right:
22 21 20. 2-1 2-2 2-3 2-4 …
Floyd, Digital Fundamentals, 10th ed
Summary Decimal Binary
Number Number

Binary Numbers 0 000


0
A binary counting sequence for numbers 1 000
from zero to fifteen is shown. 1
2 001
Notice the pattern of zeros and ones 0
in each column. 3 001
Digital counters frequently have this 1
4 010
same pattern of digits: 0
Counter 0 1 0 1 0 1 0 1 0 1 Decoder
5 010
0 0 1 1 0 0 1 1 0 0
1
0 0 0 0 1 1 1 1 0 0
6 011
0
0 0 0 0 0 0 0 0 1 1
7 011
1
8 100
Floyd, Digital Fundamentals, 10th ed 0
Summary
Binary Conversions
The decimal equivalent of a binary number can be
determined by adding the column values of all of the bits
that are 1 and discarding all of the bits that are 0.
Convert the binary number 100101.01 to decimal.
Start by writing the column weights; then add the
weights that correspond to each 1 in the number.
25 24 23 22 21 20. 2-1 2-2
32 16 8 4 2 1 . ½ ¼
1 0 0 1 0 1. 0 1
32 +4 +1 +¼ = 37¼

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Conversions
You can convert a decimal whole number to binary by
reversing the procedure. Write the decimal weight of each
column and place 1’s in the columns that sum to the decimal
number.
Convert the decimal number 49 to binary.
The column weights double in each position to the
left. Write down column weights until the last
number is larger than the one you want to convert.
26 2 5 2 4 2 3 2 2 21 2 0.
64 32 16 8 4 2 1.
0 1 1 0 0 0 1.

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Conversions
You can convert decimal to any other base by repeatedly
dividing by the base. For binary, repeatedly divide by 2:
Convert the decimal number 49 to binary by
repeatedly dividing by 2.
You can do this by “reverse division” and the
answer will read from left to right. Put quotients to
the left and remainders on top.
Answer: remainder
1 1 0 0 0 1
0 1 3 6 12 24 49 2
Continue until the Decimal
Quotient base
last quotient is 0 number

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Conversions
Quotient Remainder

LSB

Answer:
4910 = 1100012

Floyd, Digital Fundamentals, 10th ed MSB


Summary
Binary Conversions
You can convert a decimal fraction to binary by repeatedly
multiplying the fractional results of successive
multiplications by 2. The carries form the binary number.
Convert the decimal fraction 0.188 to binary by
repeatedly multiplying the fractional results by 2.
MSB
0.188 x 2 = 0.376 carry = 0
0.376 x 2 = 0.752 carry = 0
0.752 x 2 = 1.504 carry = 1
0.504 x 2 = 1.008 carry = 1
LSB
0.008 x 2 = 0.016 carry = 0
Answer = .00110 (for five significant digits)

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Addition
The rules for binary addition are
0+0=0 Sum = 0, carry = 0
0+1=1 Sum = 1, carry = 0
1+0=1 Sum = 1, carry = 0
1 + 1 = 10 Sum = 0, carry = 1
When an input carry = 1 due to a previous result, the rules
are
1 + 0 + 0 = 01 Sum = 1, carry = 0
1 + 0 + 1 = 10 Sum = 0, carry = 1
1 + 1 + 0 = 10 Sum = 0, carry = 1
1 + 1 + 1 = 11 Sum = 1, carry = 1

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Addition
Add the binary numbers 00111 and 10101 and show
the equivalent decimal addition.
0111
00111 7
10101 21
11100 = 28

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Subtraction
The rules for binary subtraction are
00=0
11=0
10=1
10  1 = 1 with a borrow of 1
Subtract the binary number 00111 from 10101 and
show the equivalent decimal subtraction.
111
10101
/ / / 21
00111 7
01110 = 14

Floyd, Digital Fundamentals, 10th ed


Summary
1’s Complement
The 1’s complement of a binary number is just the inverse
of the digits. To form the 1’s complement, change all 0’s
to 1’s and all 1’s to 0’s.
For example, the 1’s complement of 11001010 is
00110101
In digital circuits, the 1’s complement is formed by using
inverters:
1 1 0 0 1 0 1 0

0 0 1 1 0 1 0 1

Floyd, Digital Fundamentals, 10th ed


Summary
2’s Complement
The 2’s complement of a binary number is found by
adding 1 to the LSB of the 1’s complement.
Recall that the 1’s complement of 11001010 is
00110101 (1’s complement)
To form the 2’s complement, add 1: +1
1 1 0 0 1 0 1 0 00110110 (2’s complement)
1

0 0 1 1 0 1 0 1
Input bits
Carry
Adder
in (add 1)
Output bits (sum)

0 0 1 1 0 1 1 0

Floyd, Digital Fundamentals, 10th ed


Summary
Signed Binary Numbers
There are several ways to represent signed binary numbers.
In all cases, the MSB in a signed number is the sign bit, that
tells you if the number is positive or negative:
0 - positive, 1- negative

Here we study 3 different forms in which signed integer


numbers can be represented:
 Sign-magnitude
 1’s complement
 2’s complement

Floyd, Digital Fundamentals, 10th ed


Summary
Sign-Magnitude Representation of Signed Binary Numbers

Given a positive number, in order to find the corresponding


negative one you simply change the sign bit to 1.

For example, the positive number +58 is written using 8-bits as


00111010

Sign bit Magnitude bits

In this representation, the negative number 58 is written using 8-bits as


10111010

Sign bit Magnitude bits


Floyd, Digital Fundamentals, 10th ed
Summary
1’s Complement Representation of a Signed Binary Numbers

Given a positive number, in order to find the corresponding


negative one you simply compute the 1’s complement of
the number.

For example, the positive number +58 is written


using 8-bits as 00111010

In this representation, the negative number 58 is written


using 8-bits as 11000101

Floyd, Digital Fundamentals, 10th ed


Summary
2’s Complement Representation of Signed Binary Numbers

Given a positive number, in order to find the corresponding


negative one you simply compute the 2’s complement of the
number.
For example, the positive number +58 is written
using 8-bits as 00111010
To find the negative number 58 in the 2’s complement form:
Find the 1’s complement: 11000101
add 1: 1+
58 in 2’s complement: 11000110
Floyd, Digital Fundamentals, 10th ed
Summary
2’s Complement Representation of Signed Binary Numbers

An easy way to read a signed number that uses this notation is


to assign the sign bit a column weight of 128 (for an 8-bit
number). Then add the column weights for the 1’s.

Assuming that the sign bit = 128, show that 11000110 = 58
as a 2’s complement signed number:
Column weights: 128 64 32 16 8 4 2 1.
1 1 0 0 0 1 1 0
128 +64 +4 +2 = 58

Floyd, Digital Fundamentals, 10th ed


Summary
Floating Point Numbers
Floating point notation is capable of representing very
large or small numbers by using a form of scientific
notation. A 32-bit single precision number is illustrated.
S E (8 bits) F (23 bits)
Sign bit Biased exponent (+127) Magnitude with MSB dropped
Express the speed of light, c, in single precision floating point
notation. (c = 0.2998 x 109)
In binary, c = 0001 0001 1101 1110 1001 0101 1100 00002.
In scientific notation, c = 1.0001 1101 1110 1001 0101 1100 0000 x 228.
S = 0 because the number is positive. E = 28 + 127 = 15510 = 1001 10112.
F is the next 23 bits after the first 1 is dropped.
In floating point notation, c = 0 10011011 000 1110 1111 0100 1010
1110
Floyd, Digital Fundamentals, 10th ed
Summary
Arithmetic Operations with Signed Numbers
Using the signed number notation with negative
numbers in 2’s complement form simplifies addition
and subtraction of signed numbers.
Rules for addition: Add the two signed numbers. Discard
any final carries. The result is in signed form.

Examples:
00011110 = +30 00001110 = +14 11111111 = 1
00001111 = +15 11101111 = 17 11111000 = 8
00101101 = +45 11111101 = 3 1 11110111 = 9
Discard carry

Floyd, Digital Fundamentals, 10th ed


Summary
Arithmetic Operations with Signed Numbers
Note that if the number of bits required for the answer is
exceeded, overflow will occur. This occurs only if both
numbers have the same sign. The overflow will be
indicated by an incorrect sign bit.
Two examples are:
010000000 = +128 10000001 = 127
010000001 = +129 10000001 = 127
100000001 = 255 Discard carry 100000010 = +2

Wrong! The answer is incorrect


and the sign bit has changed.

Floyd, Digital Fundamentals, 10th ed


Summary
Arithmetic Operations with Signed Numbers
Rules for subtraction: 2’s complement the subtrahend and
add the numbers. Discard any final carries. The result is in
signed form.
Repeat the examples done previously, but subtract:
00011110 (+30) 00001110 (+14) 11111111 (1)
 00001111 –(+15)  11101111 –(17)  11111000 –(8)
2’s complement subtrahend and add:
00011110 = +30 00001110 = +14 11111111 = 1
11110001 = 15 00010001 = +17 00001000 = 8
1 00001111 = +15 00011111 = +31 1 00000111 = +7
Discard carry Discard carry

Floyd, Digital Fundamentals, 10th ed


Summary
Arithmetic Operations with Signed Numbers
Steps for multiplication: Example
Product
Signs differ 01010011 (83)
1. Check the sign bits and sign is (-) x 00111011
11000101 x (-59)
find the sign of product. 01010011
01010011
2. Complement any
011111001
negative number. 00000000
3. Compute Partial 0011111001
Products 01010011
4. Add Partial Products 01110010001
01010011
5. If the product sign is .
negative, take the 2’s .
complement. 001001100100001 1110110011011111

6. Attach the sign bit (-4897)=(83)x(-59)


Floyd, Digital Fundamentals, 10th ed
Summary
Arithmetic Operations with Signed Numbers Quotient
00000000
00000001
00000010
00000011
00000100
Steps for division: Example
Quotient
Signs same 01100100 dividend
1. Check the sign bits and sign is (+) - 00011001 divisor
find the sign of quotient. 01001011 Partial Remainder
2. Complement any - 00011001 divisor
00110010 Partial Remainder
negative number.
3. Subtract divisor from
- 00011001 divisor
00011001 Partial Remainder
dividend. - 00011001 divisor
4. If result is > or = zero 00000000 Final Remainder
increment quotient.
5. Repeat 3/4 until
remainder is < or = Quotient x divisor + remainder = dividend
zero. 100 (4)10 x 11001 (25)10 + 0 = 1100100 (100)10
Floyd, Digital Fundamentals, 10th ed
Summary
Decimal Hexadecimal Binary
Hexadecimal Numbers 0 0 0000
1 1 0001
Hexadecimal uses sixteen characters to 2 2 0010
represent numbers: the numbers 0 3 3 0011
through 9 and the alphabetic characters 4 4 0100
A through F. 5 5 0101
6 6 0110
Large binary number can easily be 7 7 0111
converted to hexadecimal by grouping 8 8 1000
bits 4 at a time and writing the 9 9 1001
equivalent hexadecimal character. 10 A 1010
11 B 1011
Express 1001 0110 0000 11102 in 12 C 1100
hexadecimal: 13 D 1101
Group the binary number by 4-bits 14 E 1110
starting from the right. Thus, 960E 15 F 1111

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Hexadecimal Binary
Hexadecimal Numbers 0 0 0000
1 1 0001
Hexadecimal is a weighted number 2 2 0010
system. The column weights are 3 3 0011
powers of 16, which increase from 4 4 0100
5 5 0101
right to left. 6 6 0110
Column weights 4096{
163 162 161 160.
256 16 1 .
7
8
7
8
0111
1000
9 9 1001
Express 1A2F16 in decimal. 10 A 1010
11 B 1011
Start by writing the column weights:
12 C 1100
4096 256 16 1
13 D 1101
1 A 2 F16
14 E 1110
1(4096) + A(256) + 2(16) + F(1) = 15 F 1111
1(4096) + 10(256) +2(16) +15(1) = 670310
Floyd, Digital Fundamentals, 10th ed
Summary
Hexadecimal Numbers

Converting hexadecimal to binary

Convert hex 5D3A2 to binary

5 D 3 A 2

0101 1101 0011 1010 0010

Floyd, Digital Fundamentals, 10th ed


Summary
Hexadecimal Numbers
Converting decimal to hexadecimal
Convert decimal 259010 to hexadecimal.

LSD

MSD
Stop when whole number
quotient reaches 0.

Answer: 259010 = A1E16


Floyd, Digital Fundamentals, 10th ed
Summary
Hexadecimal Numbers

Hexadecimal addition

64 36 83 77 79
+ 25 + 55 + 62 + 86 + 8B
89 8B E5 FD 104

Floyd, Digital Fundamentals, 10th ed


Summary
Hexadecimal Numbers

Hexadecimal subtraction (direct method)

86 BA 70 D2
- 25 - 38 - 26 - 73
61 82 4A 5F

If difficult, do hexadecimal subtraction by addition!

HexNumberA - HexNumberB
HexNumberA + 2’s complement of HexNumberB
Remember to drop any carry produced!

Floyd, Digital Fundamentals, 10th ed


Summary
Hexadecimal Numbers

Computing the 2’s complement of a hexadecimal number: Method 1

Floyd, Digital Fundamentals, 10th ed


Summary
Hexadecimal Numbers

Computing the 2’s complement of a hexadecimal number: Method 2

Floyd, Digital Fundamentals, 10th ed


Summary
Hexadecimal Numbers

Computing the 2’s complement of a hexadecimal number: Method 3

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Octal Binary
Octal Numbers 0 0 0000
Octal uses eight characters, the numbers 1 1 0001
2 2 0010
0 through 7 to represent numbers. There 3 3 0011
is no 8 or 9 character in octal. 4 4 0100
Binary number can easily be converted to 5 5 0101
6 6 0110
octal by grouping bits 3 at a time (starting
7 7 0111
from the right) and writing the equivalent 8 10 1000
octal character for each group. 9 11 1001
10 12 1010
Express 1 001 011 000 001 1102 in
11 13 1011
octal: 12 14 1100
Group the binary number by 3-bits 13 15 1101
starting from the right. Thus, 1130168 14 16 1110
15 17 1111

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Octal Binary
Octal Numbers 0 0 0000
1 1 0001
Octal is also a weighted number 2 2 0010
system. The column weights are 3 3 0011
powers of 8, which increase from right 4 4 0100
5 5 0101
to left. 6 6 0110
Column weights 512 {
83 8 2 8 1 8 0 .
64 8 1 .
7
8
7
10
0111
1000
9 11 1001
Express 37028 in decimal. 10 12 1010
11 13 1011
Start by writing the column weights:
12 14 1100
512 64 8 1
13 15 1101
3 7 0 28
14 16 1110
3(512) + 7(64) +0(8) +2(1) = 198610 15 17 1111

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Binary BCD
Binary Coded Decimal (BCD) Code 0 0000 0000
1 0001 0001
Binary coded decimal (BCD) is a 2 0010 0010
weighted code that is commonly 3 0011 0011
used in digital systems when it is 4 0100 0100
5 0101 0101
necessary to show decimal 6 0110 0110
numbers such as in digital readouts 7 0111 0111
(clock displays). 8 1000 1000
9 1001 1001
The table illustrates the difference 10 1010 0001 0000
between straight binary and BCD. 11 1011 0001 0001
BCD represents each decimal digit with 12 1100 0001 0010
a 4-bit code. Notice that the codes 1010 13 1101 0001 0011
through 1111 are not used in BCD 14 1110 0001 0100
(invalid codes!). 15 1111 0001 0101
Floyd, Digital Fundamentals, 10th ed
Summary
Binary Coded Decimal (BCD) Code

Convert decimal 9673 to BCD

Replace each decimal digit with its BCD code


1001 0110 0111 0011

Convert BCD code 10000010001001110110 to


decimal
Start at the right most digit and break the code
into groups of 4 bits. Then write the decimal
digit represented by each 4-bit group.
1000 0010 0010 0111 0110  82276
Floyd, Digital Fundamentals, 10th ed
Summary
Binary Coded Decimal (BCD) Code

BCD addition

0011 3 0110 0100 64


+ 0010 +2 + 0010 0101 + 25
0101 5 1000 1001 89

1000 8
+ 0101 +5
1101 13
Invalid BCD + 0110
number (>9) Add 6 in order to skip the 6 invalid codes 10-15
0001 0011 = 13 in BCD

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Coded Decimal (BCD) Code

Another example of BCD addition

1001 9
+ 1000 +8
10001 17
Invalid because + 0110
of carry Add 6
0001 0111 = 17 in BCD

Floyd, Digital Fundamentals, 10th ed


Summary
Binary Coded Decimal (BCD) Code

STEPS for BCD addition:


 Add the two BCD numbers using the rules of binary
addition starting from the right.
 If a 4-bit sum is equal to or less than 9, it is a valid BCD
number.
 If a 4-bit sum is greater than 9, or if a carry out of the 4-bit
group is generated, it is an invalid result. Add 6 (0110) to
the 4-bit sum in order to skip the six invalid codes. If a
carry results when 6 is added, simply add the carry to the
next 4-bit group.

Floyd, Digital Fundamentals, 10th ed


Summary
Decimal Binary Gray code
Gray code 0 0000 0000
1 0001 0001
Gray code is an unweighted code 2 0010 0011
that has a single bit change between 3 0011 0010
one code word and the next in a 4 0100 0110
5 0101 0111
sequence. Gray code is used to 6 0110 0101
avoid problems in systems where an 7 0111 0100
error can occur if more than one bit 8 1000 1100
changes at a time. 9 1001 1101
10 1010 1111
11 1011 1110
12 1100 1010
13 1101 1011
14 1110 1001
15 1111 1000
Floyd, Digital Fundamentals, 10th ed
Summary
Gray code
A shaft encoder is a typical application. Three IR
emitter/detectors are used to encode the position of the shaft.
The encoder on the left uses binary and can have three bits
change together, creating a potential error. The encoder on the
right uses gray code and only 1-bit changes, eliminating
potential errors.

Binary sequence
Gray code sequence

Floyd, Digital Fundamentals, 10th ed


Summary
Gray code
Binary to Gray Code Conversion
 The MSB (left-most) in the Gray code is the same as the
corresponding MSB in the binary number
 Going from left to right, add each adjacent pair of binary
code bits to get the next Gray code bit. Discard carries.

Convert binary 101101 to Gray code

1 + 0 + 1 + 1 + 0 + 1

1 1 1 0 1 1
Floyd, Digital Fundamentals, 10th ed
Summary
Gray code
Gray to Binary Code Conversion
 The MSB (left-most) in the binary code is the same as the
corresponding MSB in the Gray code.
 Add each binary code bit generated to the Gray code bit in
the next adjacent position. Discard carries.

Convert Gray code 111011 to binary

1 1 1 0 1 1
+ + + + +
1 0 1 1 0 1
Floyd, Digital Fundamentals, 10th ed
Summary
ASCII (American Standard Code of Information Interchange)

ASCII is a code for alphanumeric characters and control


characters. In its original form, ASCII encoded 128
characters and symbols using 7-bits. The first 32 characters
are control characters, that are based on obsolete teletype
requirements, so these characters are generally assigned to
other functions in modern usage.
In 1981, IBM introduced extended ASCII, which is an 8-
bit code and increased the character set to 256. Other
extended sets (such as Unicode) have been introduced to
handle characters in languages other than English.

Floyd, Digital Fundamentals, 10th ed


Summary
ASCII

Floyd, Digital Fundamentals, 10th ed


Summary
Error Detection Codes - Parity Method
The parity method is a method of error detection for
simple transmission errors involving one bit (or an odd
number of bits). A parity bit is an “extra” bit attached to
a group of bits to force the number of 1’s to be either
even (even parity) or odd (odd parity).
The ASCII character for “a” is 1100001 and for “A” is
1000001. What is the correct bit to append to make both of
these have odd parity?
The ASCII “a” has an odd number of bits that are equal to 1;
therefore the parity bit is 0.
The ASCII “A” has an even number of bits that are equal to
1; therefore the parity bit is 1.

Floyd, Digital Fundamentals, 10th ed


Summary
Parity Bits for BCD Code

Floyd, Digital Fundamentals, 10th ed


Summary
Cyclic Redundancy Check
The cyclic redundancy
check (CRC) is an error
detection method that can
detect multiple errors in
larger blocks of data.
At the sending end, a
checksum is appended to
a block of data. At the
receiving end, the check
sum is generated and
compared to the sent
checksum. If the check
sums are the same, no
error is detected.
Floyd, Digital Fundamentals, 10th ed

You might also like