number systems, base conversion, and signed-numbers...

Post on 17-Mar-2020

4 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Number Systems, Base Conversion, and Signed-Numbers

(Class 1.1)

CSE 2441 – Introduction to Digital Logic

Fall 2012

Instructor – Bill Carroll, Professor of CSE

Today’s Topics

• Important number systems

• Binary arithmetic

• Base conversion

• Signed number representation

• Two’s complement number system

Number Systems

• Decimal numbers – Digits = {0,1,2,3,4,5,6,7,8,9} – (26.75)10 = 2 x 102 + 6 x 100 + 7 x 10-1 + 5 x 10-2

• Binary numbers – Digits = {0, 1} – (11010.11)2 = 1 x 24 + 1 x 23 + 0 x 22 + 1 x 21 + 0 x 20 + 1 x 2-1 + 1 x 2-2 = (26.75)10

• Octal numbers – Digits = {0, 1, 2, 3, 4, 5, 6, 7} – (127.4)8 = 1 x 82 + 2 x 81 + 7 x 80 + 4 x 8-1 = (87.5)10

• Hexadecimal numbers – Digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F} – (B65F)16 = 11 x 163 + 6 x 162 + 5 x 161 + 15 x 160 = (46,687)10

Important Number Systems

Decimal Binary Octal Hexadecimal

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 1 F

16 10000 20 10

Representation of Numbers

• Positional Notation N = (an-1an-2 ... a1a0 . a-1a-2 ... a-m)r (1.1) where . = radix point r = radix or base n = number of integer digits to the left of the radix point m = number of fractional digits to the right of the radix point an-1 = most significant digit (MSD) a-m = least significant digit (LSD) • Polynomial Notation (Series Representation) N = an-1 x rn-1 + an-2 x rn-2 + ... + a0 x r0 + a-1 x r-1 ... + a-m x r-m = (1.2) • N = (251.41)10 = 2 x 102 + 5 x 101 + 1 x 100 + 4 x 10-1 + 1 x 10-2

a rii

i m

n

1

Binary Arithmetic

Addition

111011 Carries

101011 Augend

+ 11001 Addend

1000100

Subtraction

0 1 10 0 10 Borrows

1 0 0 1 0 1 Minuend

- 1 1 0 1 1

Subtrahend

1 0 1 0

+ 0 1

0 0 1

1 1 10

7

Binary Arithmetic (2)

Multiplication Division

1 1 0 1 0 Multiplicand

x 1 0 1 0 Multiplier

0 0 0 0 0

1 1 0 1 0

0 0 0 0 0

1 1 0 1 0

1 0 0 0 0 0 1 0 0 Product

1 0 0 1 1 1 1 1 0 1

1 0 0 1

1 1 0 0

1 0 0 1

1 1 1

1 1 0 QuotientDividend

Remainder

Divider

X 0 1

0 0 0

1 0 1

Hexadecimal Arithmetic

Addition

1 0 1 1 Carries

5 B A9 Augend

+ D 0 5 8 Addend

1 2 C 0 1 Sum

Subtraction

9 10 A 10 Borrows

A 5 B 9 Minuend

+ 5 8 0 D Subtrahend

4 D A C Difference

See Table 1.5 in text for hex addition table.

Hexadecimal Arithmetic (2)

Multiplication

B9A5 Multiplicand

x D50 Multiplier

3A0390 Partial products

96D61

9A76490 Product

Division

See Table 1.5 in text for hex multiplication table.

B9 57F6D79B

50F

706681

85D7F3

6A Remainder

Dividend

Quotient

Divider

Base Conversion (1)

• Series Substitution Method – Expanded form of polynomial representation: N = an-1rn-1 + … + a0r0 + a-1r-1 + … + a-mr-m (1.3) – Conversation Procedure (base A to base B)

• Represent the number in base A in the format of Eq. 1.3. • Evaluate the series using base B arithmetic.

– Examples: • (11010)2 ( ? )10 N = 124 + 123 + 022 + 121 + 020 = (16)10 + (8)10 + 0 + (2)10 + 0 = (26)10 • (627)8 ( ? )10 N = 682 + 281 + 780 = (384)10 + (16)10 + (7)10 = (407)10

Base Conversion (2)

• Radix Divide Method – Used to convert the integer in base A to the equivalent base B integer. – Underlying theory:

• (NI)A = bn-1Bn-1 + … + b0B0 (1.4) Here, bi’s represents the digits of (NI)B in base A.

• NI / B (bn-1Bn-1 + … + b1B1 + b0B0 ) / B = (Quotient Q1: bn-1Bn-2 + … + b1B0 ) + (Remainder R0: b0)

• In general, (bi)A is the remainder Ri when Qi is divided by (B)A.

– Conversion Procedure 1. Divide (NI)B by (B)A, producing Q1 and R0. R0 is the least significant digit, d0, of

the result. 2. Compute di, for i = 1 … n - 1, by dividing Qi by (B)A, producing Qi+1 and Ri, which

represents di. 3. Stop when Qi+1 = 0.

Base Conversion (3)

Radix divide examples

3158

398480

374

LSD

MSD

315161916

1160

B31

LSD

MSD

(315)10 = (13B)16 (315)10 = (473)8

Base Conversion (4)

Radix Multiply Method – Used to convert fractions. – Underlying theory:

• (NF)A = b-1B-1 + b-2B-2 + … + b-mB-m (1.5) Here, (NF)A is a fraction in base A and bi’s are the digits of (NF)B in base A. • B NF = B (b-1B-1 + b-2B-2 + … + b-mB-m ) = (Integer I-1: b-1) + (Fraction F-2: b-2B-1 + … + b-mB-(m-1)) • In general, (bi)A is the integer part I-i, of the product of F-(i+1) (BA).

– Conversion Procedure 1. Let F-1 = (NF)A. 2. Compute digits (b-i)A, for i = 1 … m, by multiplying Fi by (B)A, producing integer I-i, which represents (b-i)A, and fraction F-(i+1). 3. Convert each digits (b-i)A to base B.

Base Conversion (5)

Radix Multiply Examples • (0.479)10 = (0.3651…)8 MSD 3.832 0.479 8 6.656 0.832 8 5.248 0.656 8 LSD 1.984 0.248 8 … • (0.479)10 = (0.0111…)2 MSD 0.9580 0.479 2 1.9160 0.9580 2 1.8320 0.9160 2 LSD 1.6640 0.8320 2 …

Base Conversion (6)

• General Conversion Algorithm – Algorithm 1.1

To convert a number N from base A to base B, use (a) the series substitution method with base B arithmetic, or (b) the radix divide or multiply method with base A arithmetic.

– Algorithm 1.2

To convert a number N from base A to base B, use (a) the series substitution method with base 10 arithmetic to

convert N from base A to base 10, and (b) the radix divide or multiply method with decimal arithmetic to

convert N from base 10 to base B.

• Algorithm 1.2 is longer, but easier and less error prone.

Base Conversation (7)

Example of Algorithm 1.2

(18.6)9 = ( ? )11 (a) Convert to base 10 using series substitution method: N10 = 1 91 + 8 90 + 6 9-1 = 9 + 8 + 0.666… = (17.666…)10 (b) Convert from base 10 to base 11 using radix divide and multiply method: 7.326 0.666 11 3.586 0.326 11 6.446 0.586 11 N11 = (16.736 …)11

17111110

61

.

Base Conversion (8)

• When B = Ak • Algorithm 1.3 (a) To convert a number N from base A to base B when B = Ak and k

is a positive integer, group the digits of N in groups of k digits in both directions from the radix point and then replace each group with the equivalent digit in base B

(b) To convert a number N from base B to base A when B = Ak and k is a positive integer, replace each base B digit in N with the equivalent k digits in base A.

• Examples

– (001 010 111. 100)2 = (127.4)8 (group bits by 3) – (1011 0110 0101 1111)2 = (B65F)16 (group bits by 4)

Signed-Number Representation (1)

• Typical formats for integers and fractions

• Signed-number representation • Sign-magnitude • 2’s complement • 1’s complement

Signed Number Representation (2)

• Signed Magnitude Method – N = (an-1 ... a0.a-1 ... a-m)r is represented as N = (san-1 ... a0.a-1 ... a-m)rsm, (1.6) where s = 0 if N is positive and s = r -1 otherwise. – N = -(15)10 – In binary: N = -(15)10 = -(1111)2 = (1, 1111)2sm – In decimal: N = -(15)10 = (9, 15)10sm

• Complementary Number Systems – Radix complements (r's complements, 2’s complement for r=2) [N]r = rn - (N)r (1.7) where n is the number of digits in (N)r. – Positive full scale: rn-1 - 1 – Negative full scale: -rn - 1 – Diminished radix complements (r-1’s complements, 1’s complement for r=2)

[N]r-1 = rn - (N)r - 1

Signed Binary Numbers (1)

Sign-Magnitude Method – N = (an-1 ... a0)2 is represented as N = (san-1 ... a0.a-1 ... a-m)2sm, where s = 0 if N is positive

and s = 1 if N is negative. – If N = +(1011)2, then N = (01011)2sm – If N = -(1011)2, then N = (11011)2sm

Pros and cons – Simple and easy for humans understand – Complicates computer arithmetic units

• Two representations of zero, +0 and -0 • Need both an adder and a subtractor

Signed Binary Numbers (2)

Two’s Complement Method – Let N = (an-1 ... a0)2

– If N ≥ 0, it is represented by (0an-1 ... a0)2

– If N < 0, it is represented by [0an-1 ... A0]2 – 2’s complement [N]2 = 2n - (N)2 , where n is the number of digits in (N)2. – Examples (n = 5, 2n = 100000)

• +(13)10 = +(1101)2 = (01101)2

• -(13)10 = -(1101)2 = [01101]2 = (100000-01101)2 = (10011)2 • +(6)10 = +(0110)2 = (00110)2

• -(6)10 = -(0110)2 = [00110]2 = (100000-00110)2 = (11010)2

• (13)10 – (6)10 = (13)10 + (-(6)10) = (01101)2 + [00110]2 = (01101)2 + (11010)2 = (100111)2 = +(7)10

• (13)10 – (13)10 = (01101)2 + [01101]2 = (01101)2 + (10011)2 = (100000)2 = 0

– Note that 2’s complement is equivalent to bit-by-bit complement + 1.

Signed Binary Numbers (3)

One’s Complement Method – Let N = (an-1 ... a0)2

– If N ≥ 0, it is represented by (0an-1 ... a0)2

– If N < 0, it is represented by [0an-1 ... A0]1 – 1’s complement [N]1 = 2n - (N)2 – 1 = [N]2 -1 – Examples (n = 5, 25 = 100000)

• +(13)10 = +(1101)2 = (01101)2

• -(13)10 = -(1101)2 = [01101]1 = (100000-01101-1)2 = (10010)2 • +(6)10 = +(0110)2 = (00110)2

• -(6)10 = -(0110)2 = [00110]1 = (100000-00110-1)2 = (11001)2

• (13)10 – (6)10 = (13)10 + (-(6)10) = (01101)2 + [00110]1 = (01101)2 + (11001)2 = (100110)2 = +(6)10 ??? Must correct using end-around carry.

• (13)10 – (13)10 = (01101)2 + [01101]1 = (01101)2 + (10010)2 = (11111)2 = -0

– Note that 1’s complement is equivalent to bit-by-bit complement.

Signed Binary Numbers (4) Decimal Sign-Magnitude Two’s Complement One’s Complement

+7 0111 0111 0111

+6 0110 0110 0110

+5 0101 0101 0101

+4 0100 0100 0100

+3 0011 0011 0011

+2 0010 0010 0010

+1 0001 0001 0001

0 0000, 1000 0000 0000, 1111

-1 1001 1111 1110

-2 1010 1110 1101

-3 1011 1101 1100

-4 1100 1100 1011

-5 1101 1011 1010

-6 1110 1010 1001

-7 1111 1001 1000

-8 NA 1000 NA

Two’s Complement Algorithms (1)

• Algorithm 1.4 Find [N]2 given (N)2 . – Copy the bits of N, beginning with the LSD and proceeding

toward the MSD until the first 1 bit is reached. – Leave this 1 as is. – Replace each remaining digit aj , of N by 1 - aj until the MSD has

been replaced,i.e., replace 1 with 0 and 0 with 1.

• Example: 2's complement of (10100)2 is (01100)2. • Example: 2’s complement of N = (10110)2 for n = 8.

– Put three zeros in the MSB position and apply algorithm 1.4 – N = 00010110 – [N]2 = (11101010)2

Two’s Complement Algorithms (2)

• Algorithm 1.5 Find [N]2 given (N)2.

First replace each digit, ak , of (N)r by 1 - ak and then add 1 to the resultant.

• This algorithm follows from the equation [N]1 = 2n - (N)2 – 1 = [N]2 -1, i.e.,

[N]2 = [N]1 + 1

• This is equivalent to complementing each digit and then adding 1.

• Example: Find the 2’s complement of N = (10100)2 .

– N = 10100

01011 complement the bits

+1 add 1

[N]2 = 01100

• Example: Find 2’s complement of N = (01100101)2 .

N = 01100101

10011010 Complement the bits

+1 Add 1

[N]2 = (10011011)2

Two’s Complement Arithmetic (1)

• Two’s complement number systems are used in computer systems since this reduces hardware requirements (only adders are needed).

• A - B = A + (-B) (add r’s complement of B to A) • Range of numbers in two’s complement number system, where n is the number of

bits.

• 2n-1 -1 = (0, 11 ... 1)2cns and -2n-1 = (1, 00 ... 0)2cns

• If the result of an operation falls outside the range, an overflow condition is said to occur and the result is not valid.

• Consider three cases (where B 0 and C 0):

– A = B + C – A = B - C – A = - B - C

Two’s Complement Arithmetic (2)

• Case 1: A = B + C

– (A)2 = (B)2 + (C)2

– If A > 2n-1 -1 (overflow), it is detected by the nth bit, which is set to 1.

– Example: (7)10 + (4)10 = ? using 5-bit two’s complement arithmetic.

• + (7)10 = +(0111)2 = (0, 0111)2cns

• + (4)10 = +(0100)2 = (0, 0100)2cns

• (0, 0111)2cns + (0, 0100)2cns = (0, 1011)2cns = +(1011)2 = +(11)10

• No overflow.

– Example: (9)10 + (8)10 = ?

• + (9)10 = +(1001)2 = (0, 1001)2cns

• + (8)10 = +(1000)2 = (0, 1000)2cns

• (0, 1001)2cns + (0, 1000)2cns = (1, 0001)2cns (overflow)

Two’s Complement Arithmetic (3)

• Case 2: A = B - C – A = (B)2 + (-(C)2) = (B)2 + [C]2 = (B)2 + 2n - (C)2 = 2n + (B - C)2 – If B C, then A 2n and the carry is discarded. – So, (A)2 = (B)2 + [C]|carry discarded – If B < C, then A = 2n - (C - B)2 = [C - B]2 or A = -(C - B)2 (no carry in

this case). – No overflow for Case 2. – Example: (14)10 - (9)10 = ?

• Perform (14)10 + (-(9)10) • (14)10 = +(1110)2 = (0, 1110)2cns • -(9)10 = -(1001)2 = (1, 0111)2cns • (14)10 - (9)10 = (0, 1110)2cns + (1, 0111)2cns = (0, 0101)2cns + carry

= +(0101)2 = +(5)10

Two’s Complement Arithmetic (4)

– Example: (9)10 - (14)10 = ? • Perform (9)10 + (-(14)10) • (9)10 = +(1001)2 = (0, 1001)2cns • -(14)10 = -(1110)2 = (1, 0010)2cns • (9)10 - (14)10 = (0, 1001)2cns + (1, 0010)2cns = (1, 1011)2cns

= -(0101)2 = -(5)10

– Example: (0, 0100)2cns - (1, 0110)2cns = ?

• Perform (0, 0100)2cns + (- (1, 0110)2cns) • - (1, 0110)2cns = two’s complement of (1,0110)2cns = (0, 1010)2cns • (0, 0100)2cns - (1, 0110)2cns = (0, 0100)2cns + (0, 1010)2cns = (0, 1110)2cns = +(1110)2 = +(14)10 • +(4)10 - (-(10)10) = +(14)10

Two’s Complement Arithmetic (5)

• Case 3: A = -B - C – A = [B]2 + [C]2 = 2n - (B)2 + 2n - (C)2 = 2n + 2n - (B + C)2 = 2n + [B + C]2 – The carry bit (2n) is discarded. – An overflow can occur, in which case the sign bit is 0. – Example: -(7)10 - (8)10 = ?

• Perform (-(7)10) + (-(8)10) • -(7)10 = -(0111)2 = (1, 1001)2cns , -(8)10 = -(1000)2 = (1, 1000)2cns • -(7)10 - (8)10 = (1, 1001)2cns + (1, 1000)2cns = (1, 0001)2cns + carry

= -(1111)2 = -(15)10

– Example: -(12)10 - (5)10 = ? • Perform (-(12)10) + (-(5)10) • -(12)10 = -(1100)2 = (1, 0100)2cns , -(5)10 = -(0101)2 = (1, 1011)2cns • -(7)10 - (8)10 = (1, 0100)2cns + (1, 1011)2cns = (0, 1111)2cns + carry • Overflow, because the sign bit is 0.

Two’s Complement Arithmetic (6)

• Example: A = (25)10 and B = -(46)10

– A = +(25)10 = (0, 0011001)2cns , -A = (1, 1100111)2cns – B = -(46)10 = -(0, 0101110)2 = (1, 1010010)2cns , -B = (0, 0101110)2cns – A + B = (0, 0011001)2cns + (1, 1010010)2cns = (1, 1101011)2cns = -(21)10 – A - B = A + (-B) = (0, 0011001)2cns + (0, 0101110)2cns = (0, 1000111)2cns = +(71)10 – B - A = B + (-A) = (1, 1010010)2cns + (1, 1100111)2cns = (1, 0111001)2cns + carry = -(0, 1000111)2cns = -(71)10 – -A - B = (-A) + (-B) = (1, 1100111)2cns + (0, 0101110)2cns = (0, 0010101)2cns + carry = +(21)10 – Note: Carry bit is discarded.

Two’s Complement Arithmetic (7)

• Summary • When numbers are represented using 2’s complement number system:

– Addition: Add two numbers. – Subtraction: Add two’s complement of the subtrahend to the minuend. – Carry bit is discarded, and overflow is detected as shown above.

Case Carry Sign Bit Condition Overflow ?

B + C 0

0

0

1

B + C 2n-1 - 1

B + C > 2n-1 - 1

No

Yes

B - C 1

0

0

1

B C

B > C

No

No

-B - C 1

1

1

0

-(B + C) -2n-1

-(B + C) < -2n-1No

Yes

top related