73
Data Representation Dr. Bernard Chen Ph.D. University of Central Arkansas

Data Representation Dr. Bernard Chen Ph.D. University of Central Arkansas

Embed Size (px)

Citation preview

Data Representation

Dr. Bernard Chen Ph.D.University of Central Arkansas

Outline

Data Representation Compliments Subtraction of Unsigned Numbers

using r’s complement How To Represent Signed Numbers Floating-Point Representation

Data Types The data types stored in digital computers

may be classified as being one of the following categories:

1. numbers used in arithmetic computations, 2. letters of the alphabet used in data processing,

and 3. other discrete symbols used for specific

purposes.

All types of data are represented in computers in binary-coded form.

Radix representation of numbers

• Radix or base: is the total number of symbols used to represent a value. A number system of radix r uses a string consisting of r distinct symbols to represent a value.

Radix representation of numbers Example: convert the following number

to the radix 10 format. 97654.35

The positions indicate the power of the radix.

Start from the decimal point right to left we get 0,1,2,3,4 for the whole numbers.

And from the decimal point left to right We get -1, -2 for the fractions= 9x104 + 7x103 + 6x102 + 5x101 + 4x100 +

3x10-1 + 5x10-2

Binary Numbers

Binary numbers are made of binary digits (bits): 0 and 1

Convert the following to decimal (1011)2 = 1x23 + 0x22 + 1x21 + 1x20 =

(11)10

Example

Use radix representation to convert the binary number (101.01) into decimal.

The position value is power of 2

1 0 1. 0 1

22 21 20 2-1 2-2

4 + 0 + 1 + 0 + 1/22 = 5.25 (101.01)2 (5.25)10

= 1 x 22 + 0 x 2 + 1 + 0 x 2-1 + 1 x 2-2

Converting an Integer from Decimal to Another Base

1. Divide the decimal number by the base (e.g. 2)

2. The remainder is the lowest-order digit

3. Repeat the first two steps until no divisor remains.

4. For binary the even number has no remainder ‘0’, while the odd has ‘1’

For each digit position:

Converting an Integer from Decimal to Another Base

Example for (13)10:

IntegerQuotient

13/2 = (12+1)½ a0 = 1

6/2 = ( 6+0 )½ a1 = 0

3/2 = (2+1 )½ a2 = 1 1/2 = (0+1) ½ a3 = 1

Remainder Coefficient

Answer (13)10 = (a3 a2 a1 a0)2 = (1101)2

Converting a Fraction from Decimal to Another Base

1. Multiply decimal number by the base (e.g. 2)

2. The integer is the highest-order digit

3. Repeat the first two steps until fraction becomes zero.

For each digit position:

Converting a Fraction from Decimal to Another Base

Example for (0.625)10:

Integer

0.625 x 2 = 1 + 0.25 a-1 = 10.250 x 2 = 0 + 0.50 a-2 = 00.500 x 2 = 1 + 0 a-3 = 1

Fraction Coefficient

Answer (0.625)10 = (0.a-1 a-2 a-3 )2 = (0.101)2

DECIMAL TO BINARY CONVERSION(INTEGER+FRACTION)

(1) Separate the decimal number into integer and fraction parts.

(2) Repeatedly divide the integer part by 2 to give a quotient and a remainder andRemove the remainder. Arrange the sequence of remainders right to left from the period. (Least significant bit first)

(3) Repeatedly multiply the fraction part by 2 to give an integer and a fraction partand remove the integer. Arrange the sequence of integers left to right from the period. (Most significant fraction bit first)

(Example) (41.6875)10 (?)2

Integer = 41, Fraction = 0.6875

The first procedure produces

41= 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 2 + 1 = (101001)

0.6875=0.1011

41.6875 (10) = 101001.1011 (2)

Integer remainder

41 /2 1

20 0

10 0

5 1

2 0

1 1

Overflow

Fraction

X by 2 .6875

1 .3750

0 .750

1 .5

1 0

.Closer to

the point

Octal Numbers

Octal numbers (Radix or base=8) are made of octal digits: (0,1,2,3,4,5,6,7)

How many items does an octal number represent?

Convert the following octal number to decimal(465.27)8 = 4x82 + 6x81 + 5x80 + 2x8-1 + 7x8-2

Counting in Octal

0 1 2 3 4 5 6 7

10 11 12 13 14 15 16 17

20 21 22 23 24 25 26 27

Converting an Integer from Decimal to Octal

1. Divide decimal number by the base (8)

2. The remainder is the lowest-order digit

3. Repeat first two steps until no divisor remains.

For each digit position:

Converting an Integer from Decimal to Octal

Example for (175)10:

IntegerQuotient

175/8 = 21 + 7/8 a0 = 7 21/8 = 2 + 5/8 a1 = 5 2/8 = 0 + 2/8 a2 = 2

Remainder Coefficient

Answer (175)10 = (a2 a1 a0)2 = (257)8

Converting an Integer from Decimal to Octal

1. Multiply decimal number by the base (e.g. 8)

2. The integer is the highest-order digit

3. Repeat first two steps until fraction becomes zero.

For each digit position:

Converting an Integer from Decimal to Octal

Example for (0.3125)10:

Integer

0.3125 x 8 = 2 + 0.5 a-1 = 20.5000 x 8 = 4 + 0 a-2 = 4

Fraction Coefficient

Answer (0.3125)10 = (0.24)8

Combine the two (175.3125)10 = (257.24)8

Remainder of division

Overflow of multiplication

Hexadecimal Numbers Hexadecimal numbers are made of 16 symbols:

(0,1,2,3,4,5,6,7,8,9,A, B, C, D, E, F) Convert a hexadecimal number to decimal

(3A9F)16 = 3x163 + 10x162 + 9x161 + 15x160 = 1499910 Hexadecimal with fractions:

(2D3.5)16 = 2x162 + 13x161 + 3x160 + 5x16-1 = 723.312510

Note that each hexadecimal digit can be represented with four bits.

(1110) 2 = (E)16

Groups of four bits are called a nibble. (1110) 2

Example Convert the decimal number

(107.00390625)10 into hexadecimal number.

(107.00390625)10 (6B.01)16

Integer remainder

107 Divide/16

6 11=B

0 6

Overflow

Fraction

X by 16 . 00390625

0 .0625

1 .0000

.Closer to

the period

The Growth of Binary Numbers

n 2n

0 20=1

1 21=2

2 22=4

3 23=8

4 24=16

5 25=32

6 26=64

7 27=128

n 2n

8 28=256

9 29=512

10 210=1024

11 211=2048

12 212=4096

20 220=1M

30 230=1G

40 240=1T

Mega

Giga

Tera

Conversion Between Number Bases

Decimal(base 10)

Octal(base 8)

Binary(base 2)

Hexadecimal

(base16)° We normally convert to base 10

because we are naturally used to the decimal number system.

° We can also convert to other number systems

One to one comparison Binary, octal, and

hexadecimal similar Easy to build circuits

to operate on these representations

Possible to convert between the three formats

Converting between Base 16 and Base 2

° Conversion is easy!

Determine 4-bit value for each hex digit

° Note that there are 24 = 16 different values of four bits which means each 16 value is converted to four binary bits.

° Easier to read and write in hexadecimal.

° Representations are equivalent!

3A9F16 = 0011 1010 1001 11112

3 A 9 F

Converting between Base 16 and Base 8

1. Convert from Base 16 to Base 2

2. Regroup bits into groups of three starting from right

3. Ignore leading zeros

4. Each group of three bits forms an octal digit (8 is represented by 3 binary bits).

352378 = 011 101 010 011 1112

5 2 3 73

3A9F16 = 0011 1010 1001 11112

3 A 9 F

Example Convert 101011110110011 to a.       octal numberb.      hexadecimal number a.       Each 3 bits are converted to octal :

(101) (011) (110) (110) (011)

5 3 6 6 3 101011110110011 = (53663)8

b.      Each 4 bits are converted to hexadecimal:(0101) (0111) (1011) (0011)

5 7 B 3

101011110110011 = (57B3)16

Conversion from binary to hexadecimal is similar except that the bits divided into groups of four.

ASCII Code• American Standard Code for Information Interchange

• ASCII is a 7-bit code, frequently used with an 8th bit for error detection (more about that in a bit).

Character ASCII (bin) ASCII (hex)

Decimal Octal

A 1000001 41 65 101

B 1000010 42 66 102

C 1000011 43 67 103

Z

a

1

Outline

• Data Representation

• Compliments

• Subtraction of Unsigned Numbers using r’s complement

• How To Represent Signed Numbers

• Floating-Point Representation

Binary Addition

1 1 1 1 0 1+ 1 0 1 1 1---------------------

0

1

0

1

1

1111

1 1 00

carries

Example Add (11110)2 to (10111)2

(111101)2 + (10111) 2 = (1010100)2carry

Binary Subtraction

• We can also perform subtraction (with borrows).• Example: subtract (10111) from (1001101)

1 100 10 10 0 0 10

1 0 0 1 1 0 1- 1 0 1 1 1------------------------ 0 1 1 0 1 1 0

borrows

1+1=2

(1001101)2 - (10111)2 = (0110110)2

Subtraction using addition Conventional addition (using carry) is

easily implemented in digital computers. However; subtraction by borrowing is

difficult and inefficient for digital computers.

Much more efficient to implement subtraction using ADDITION OF the COMPLEMENTS of numbers.

Complements of numbers

(r-1 )’s Complement

•Given a number N in base r having n digits, •the (r- 1)’s complement of N is defined as

(rn - 1) - N

•For decimal numbers the base or r = 10 and r- 1= 9,

•so the 9’s complement of N is (10n-1)-N

•99999……. - N

Digit n

Digit n-1

Next digit

Next digit

First digit

9 9 9 9 9

-

2- Find the 9’s complement of 546700 and 12389

The 9’s complement of 546700 is 999999 - 546700= 453299

and the 9’s complement of 12389 is 99999- 12389 = 87610.

9’s (10-1) complement Examples

5 4 6 7 0- 0

9 9 9 9 9 9

4 5 3 2 9 9

1 2 3 8- 9

9 9 9 9 9

8 7 6 1 0

l’s (2-1) complement

For binary numbers, r = 2 and r — 1 = 1,

r-1’s complement is the l’s complement.

The l’s complement of N is (2^n- 1) - N.

Digit n

Digit n-1

Next digit

Next digit

First digit

1 1 1 1 1

Bit n-1 Bit n-2 ……. Bit 1 Bit 0

-

l’s complement

Find r-1 complement for binary number N with four binary digits.

r-1 complement for binary means 2-1 complement or 1’s complement.

n = 4, we have 24 = (10000)2 and 24 - 1 = (1111)2.

The l’s complement of N is (24 - 1) - N. = (1111) - N

The complement 1’s of1011001 is 0100110

0 1 1 0 0- 1

1 1 1 1 1 1

1 0 0 1 1 0

0 0 1 1 1- 1

1 1 1 1 1 1

1 1 0 0 0 0

1

1

0

The 1’s complement of0001111 is 1110000

0

1

1

l’s complement

r’s Complement

•Given a number N in base r having n digits, •the r’s complement of N is defined as

rn - N.

•For decimal numbers the base or r = 10,

•so the 10’s complement of N is 10n-N.

•100000……. - N

Digit n

Digit n-1

Next digit

Next digit

First digit

0 0 0 0 0

-1

10’s complement Examples

Find the 10’s complement of 546700 and 12389

The 10’s complement of 546700 is 1000000 - 546700= 453300

and the 10’s complement of 12389 is

100000 - 12389 = 87611.

Notice that it is the same as 9’s complement + 1.

5 4 6 7 0- 0

0 0 0 0 0 0

4 5 3 3 0 0

1 2 3 8- 9

1 0 0 0 0 0

8 7 6 1 1

1

For binary numbers, r = 2,

r’s complement is the 2’s complement.

The 2’s complement of N is 2n - N.

2’s complement

Digit n

Digit n-1

Next digit

Next digit

First digit

0 0 0 0 0

-1

2’s complement Example

The 2’s complement of1011001 is 0100111

The 2’s complement of0001111 is 1110001

0 1 1 0 0- 1

0 0 0 0 0 0

1 0 0 1 1 1

0 0 1 1 1- 1

1 1 0 0 0 1

1

0

0

0

1

1

0 0 0 0 0 001

Fast Methods for 2’s Complement

Method 1:The 2’s complement of binary number is obtained by adding 1 to the l’s complement value.Example:1’s complement of 101100 is 010011 (invert the 0’s and 1’s)2’s complement of 101100 is 010011 + 1 = 010100

Fast Methods for 2’s Complement

 Method 2:The 2’s complement can be formed by leaving all least significant 0’s and the first 1 unchanged, and then replacing l’s by 0’s and 0’s by l’s in all other higher significant bits.

Example:The 2’s complement of 1101100 is

0010100 Leave the two low-order 0’s and the first 1 unchanged, and then replacing 1’s by 0’s and 0’s by 1’s in the four most significant bits.

Examples

Finding the 2’s complement of (01100101)2 Method 1 – Simply complement each bit and

then add 1 to the result. (01100101)2

[N] = 2’s complement = 1’s complement (10011010)2 +1

=(10011011)2

Method 2 – Starting with the least significant bit, copy all the bits up to and including the first 1 bit and then complement the remaining bits.

N = 0 1 1 0 0 1 0 1

[N] = 1 0 0 1 1 0 1 1

Outline

Data Representation Compliments Subtraction of Unsigned

Numbers using r’s complement

How To Represent Signed Numbers Floating-Point Representation

Subtraction of Unsigned Numbers using r’s complement

(1) if M N, ignore the carry without taking complement of sum.

(2) if M < N, take the r’s complement of sum and place negative sign in front of sum. The answer is negative.

Example 1 (Decimal unsigned numbers),  perform the subtraction 72532 - 13250 = 59282.  M > N : “Case 1” “Do not take complement of sumand discard carry”The 10’s complement of 13250 is 86750. Therefore:

M = 7253210’s complement of N =+86750

Sum= 159282Discard end carry 105= - 100000Answer = 59282 no complement

Example 2;Now consider an example with M <N. The subtraction 13250 - 72532 produces negative 59282. Using the procedure with complements, we have 

M = 1325010’s complement of N = +27468

Sum = 40718

Take 10’s complement of Sum = 100000

-40718

The number is : 59282

Place negative sign in front of the number: -59282

Subtract by Summation

Subtraction with complement is done with binary numbers in a similar way.

Using two binary numbers X=1010100 and Y=1000011

We perform X-Y and Y-X

X-Y

X= 1010100 2’s com. of Y= 0111101 Sum= 10010001 Answer= 0010001

Y-X

Y= 1000011 2’s com. of X= 0101100 Sum= 1101111

There’s no end carry: answer is negative --- 0010001 (2’s complement of 1101111)

BINARY ADDER

Binary adder is constructed with full-adder circuits connected in cascade.

•It has 3 input and 2 output

To implement an arithmetic adder for multiple-bit inputs, we need to treat the carry out from the lower bit as a third input ( it becomes carry in for the current bit) in addition to the two input bits at the current bit position.

FULL-ADDER

X1

Y1

Z1

S 1 C1

X0

Y0

Z0

S0 C0

+

Full- Adder It adds 3-bits, it has 3-inputs and 2-outputs

 

We will use x, y and z for inputs and s for sum and c for carry are the two outputs.

The truth tablex y z c s

0 0 0 0 0

0 0 1 0 1

0 1 0 0 1

0 1 1 1 0

1 0 0 0 1

1 0 1 1 0

1 1 0 1 0

1 1 1 1 1

C= z (x y) + xy

S= x y z Putting them together we get:

The logic diagram for the full adder

Full Adder

BINARY ADDER

Binary adder is constructed with full-adder circuits connected in cascade.

Arithmetic Microoperations

Arithmetic subtraction: R3 R1 + R2’ + 1 where R2 is the 1’s complement of

R2. Adding 1 to the one’s complement

is equivalent to taking the 2’s complement of R2 and adding it to R1.

BINARY ADDER-SUBTRACTOR

• The addition and subtraction operations can be combined into one common circuit by including an exclusive-OR (XOR) gate with each full-adder.

BINARY ADDER-SUBTRACTOR

BINARY ADDER-SUBTRACTOR  • M = 0: Note that B XOR 0 = B.

This is exactly the same as the binary adder with carry in C0 = 0.

M = 1: Note that B XOR 1 = B’ (flip all B bits). The outputs of the XOR gates are thus the 1’s complement of B.

M = 1 also provides a carry in 1. The entire operation is: A + B’ + 1.

Outline

Data Representation Compliments Subtraction of Unsigned Numbers

using r’s complement How To Represent Signed

Numbers Floating-Point Representation

How To Represent Signed Numbers Plus and minus signs used for decimal

numbers: 25 (or +25), -16, etc.

For computers, it is desirable to represent everything as bits..

Three types of signed binary number representations:

1. signed magnitude, 2. 1’s complement, and 3. 2’s complement

1. signed magnitude• In each case: left-most bit

indicates sign: positive (0) or negative (1).

Consider 1. signed magnitude:

000011002 = 1210

Sign bit Magnitude

100011002 = -1210

Sign bit Magnitude

2. One’s Complement Representation

The one’s complement of a binary number involves inverting all bits.

• To find negative of 1’s complement To find negative of 1’s complement number take the 1’s complement of number take the 1’s complement of whole number including the sign bit.whole number including the sign bit.

000011002 = 1210

Sign bit Magnitude

111100112 = -1210

Sign bit 1’complement

3. Two’s Complement Representation

• The two’s complement of a binary number involves inverting all bits and adding 1.

To find the negative of a signed number take the 2’s the 2’s complement of the positive number including the sign bit.

000011002 = 1210

Sign bit Magnitude

111101002 = -1210

Sign bit 2’s complement

The rule for addition is add the two numbers, including their sign bits, and discard any carry out of the sign (leftmost) bit position. Numerical examples for addition are shown below.Example:

+ 6 00000110 - 6 11111010+13 00001101 +13 00001101+19 00010011 +7 00000111

+6 00000110 -6 11111010-13 11110011 -13 11110011-7 11111001 -19 11101101

In each of the four cases, the operation performed is always addition, including the sign bits.Only one rule for addition, no separate treatment of subtraction. Negative numbers are always represented in 2’s complement.

Sign addition in 2’s complement

Overflow

Overflow example:

+70 0 1000110 -70 1 0111010 +80 0 1010000 -80 1 0110000 = +150 1 0010110 =-150 0 1101010

Overflow

• An overflow cannot occur after an addition if one number is positive and the other is negative, since adding a positive number to a negative number produces a result that is smaller than the larger of the two original numbers.

An overflow may occur if the two numbers added are both either positive or negative.

Outline

Data Representation Compliments Subtraction of Unsigned Numbers

using r’s complement How To Represent Signed Numbers Floating-Point Representation

Floating-Point Representation

+ 6132.789 is represented in floating-point with a fraction and an exponent as follows:

Fraction Exponent +6.132789 +03

Scientific notation : + 6.132789 10+3

Floating-Point Representation 32-bit floating point format. Leftmost bit = sign bit (0 positive or 1

negative). Exponent in the next 8 bits. Use a biased

representation. Final portion of word (23 bits in this example)

is the significand (sometimes called mantissa).

Example Convert the following number;37.75 into floating point

format to fit in 32 bit register. Convert the number from decimal into binary

100101.11 Normalize all digits including the fraction to

determine the exponent. 1.0010111 x 25

0 0 0 0 0 0 1 0 1 1 0 0 1 0 1 1 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0

signsign1bit

EXPEXP8bit

Significant23bit