You are on page 1of 32

Chapter 3 Data Representation

Dr. Bernard Chen Ph.D.


University of Central Arkansas Spring 2009

Data Types

The data types stored in digital computers may be classified as being one of the following categories: numbers used in arithmetic computations, letters of the alphabet used in data processing, and other discrete symbols used for specific purposes.

1. 2. 3.

All types of data are represented in computers in binarycoded 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 22 = 0 21 1. 20 0 2-1 1 2-2 1 + 0 x 2-1 + 1 x 2-2

1 x 22 + 0 x 2 + 1+ 0+

4+ 0+ (101.01)2 (5.25)10

1/22 = 5.25

Binary Addition
Example Add (11110)2 to (10111)2 1 1 1 1 1 1 1 0 1 + 1 0 1 1 1 --------------------1 0 1 0 1 0 0 carry (111101)2 + (10111) 2 = (1010100)2 1 1 1 carries

Binary Subtraction

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

1 0 10 10 1 0

10 0 0 10

1+1= 2 borrows

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

The Growth of Binary Numbers


n 0 1 2 3 4 5 6 7 2n 20=1 21=2 22=4 23=8 24=16 25=32 26=64 27=128 11 12 20 30 40 n 8 9 10 2n 28=256 29=512 210 =102 4 211 =204 8 212 =409 6 220 =1M 230 =1G 240 =1T
Mega Giga Tera

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

Conversion Between Number Bases


Octal(base 8) Decimal(base 10) Binary(base 2)

Hexadecimal

We normally convert to base 10

(base16)

because we are naturally used to the decimal number system. We can also convert to other number systems

Converting an Integer from Decimal to Another Base


For each digit position: 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

Converting an Integer from Decimal to Another Base


Integer Quotient Remainder Coefficient

Example for (13)10 :

13/2 = 6/2 = 3/2 = 1/2 =

(12+1) ( 6+0 ) (2+1 ) (0+1)

a0 = 1 a1 = 0 a2 = 1 a3 = 1

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

Converting a Fraction from Decimal to Another Base


For each digit position: 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.

Converting a Fraction from Decimal to Another Base


Example for (0.625)10 :
Integer 0.625 x 2 = 0.250 x 2 = 0.500 x 2 = 1 0 1 + + + Fraction 0.25 0.50 0 Coefficient a-1 = 1 a-2 = 0 a-3 = 1

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 and Remove 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 part and 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, Integer 41 20 10 5 2 1 /2 remainder 1 0 0 1 0 1


Closer to the point

Fraction = 0.6875
Overflow X by 2 Fraction .6875 .3750 .750 .5 0

1 0 1 1

The first procedure produces 41 = 32+8+1

= 1 x 25 + 0 x 24 + 1 x 23 + 0 x 22 + 0 x 2 + 1

Converting an Integer from Decimal to Octal


For each digit position: 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.

Converting an Integer from Decimal to Octal


Example for (175)10 :
Integer Quotient Remainder Coefficient

175/8 = 21/8 = 2/8 =

21 2 0

+ + +

7/8 5/8 2/8

a0 = 7 a1 = 5 a2 = 2

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

Converting an Integer from Decimal to Octal


For each digit position: 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.

Converting an Integer from Decimal to Octal


Example for (0.3125)10 :
Integer Fraction Coefficient

0.3125 x 8 = 0.5000 x 8 =

2 4

+ 0.5 a-1 = 2 + 0 a-2 = 4 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) (3A9F)16 = 3x163 + 10x162+ 9x161+ 15x160 = 1499910 (2D3.5)16 = 2x162+ 13x161+ 3x160 + 5x16-1 = 723.312510

Convert a hexadecimal number to decimal

Hexadecimal with fractions:

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

(1110) 2 = (E)16 (1110)


2

Groups of four bits are called a nibble.

Example

Convert the decimal number (107.00390625)10 into hexadecimal number.


Integer remainde r 107 6 0 Divide/16 11=B 6 Closer to

Overflow Fraction X by 16 . 00390625 .0625 .0000

. the period

0 1

(107.00390625)10 (6B.01)16

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


3A9F16 = 0011 1010 1001 11112
3 A 9 F

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!

Converting between Base 16 and Base 8


3A9F16 = 0011 1010 1001 11112
3 A 9 F

352378 =

011 101 010 011 1112


3 5 2 3 7

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

Example
Convert 101011110110011 to a. octal number b. hexadecimal number 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. a.

Binary Coded Binary coded decimal (BCD) represents each decimal digit with four bits Decimal
Ex. 0011 0010 1001 = 32910
3 2 9

This is NOT the same as 0011001010012 Why use binary coded decimal? Because people think in decimal.

Digit 0 1 2 3 4

BCD Code 0000 0001 0010 0011 0100

Digit 5 6 7 8 9

BCD Code 0101 0110 0111 1000 1001

BCD versus other codes BCD not very efficient


Used in early computers (40s, 50s) Used to encode numbers for sevensegment displays. Easier to read?

(Example) The decimal 99 is represented by 1001 1001.

Digit 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Gray Code Binary


0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

Gray Code 0000 0001 0011 0010 0110 0111 0101 0100 1100 1101 1111 1110 1010 1011 1001 1000

Gray code is not a number system. It is an alternative way to represent four bit data Only one bit changes from one decimal digit to the next Useful for reducing errors in communication. Can be scaled to larger numbers.

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 A B C Z a 1 1000001 1000010 1000011 41 42 43 65 66 67 Octal 101 102 103

ASCII American Standard Code for Information Interchange Code

You might also like