830 likes | 1.22k Views
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.
E N D
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: • numbers used in arithmetic computations, • letters of the alphabet used in data processing, and • 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 202-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 For each digit position: • Divide the decimal number by the base (e.g. 2) • The remainder is the lowest-order digit • Repeat the first two steps until no divisor remains. • 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 = (12+1)½ a0 = 1 6/2 = ( 6+0 )½ a1 = 0 3/2 = (2+1 )½ a2 = 1 1/2 = (0+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: • Multiply decimal number by the base (e.g. 2) • The integer is the highest-order digit • Repeat the first two steps until fraction becomes zero.
Converting a Fraction from Decimal to Another Base Example for (0.625)10: Integer Fraction Coefficient 0.625 x 2 = 1 + 0.25 a-1 = 1 0.250 x 2 = 0 + 0.50 a-2 = 0 0.500 x 2 = 1 + 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, Fraction = 0.6875 Closer to the point . 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)
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
Converting an Integer from Decimal to Octal For each digit position: • Divide decimal number by the base (8) • The remainder is the lowest-order digit • 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 + 7/8 a0 = 7 21/8 = 2 + 5/8 a1 = 5 2/8 = 0 + 2/8 a2 = 2 Answer (175)10 = (a2 a1 a0)2 = (257)8
Converting an Integer from Decimal to Octal For each digit position: • Multiply decimal number by the base (e.g. 8) • The integer is the highest-order digit • 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 = 2 + 0.5 a-1 = 2 0.5000 x 8 = 4 + 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) • 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 Closer to the period .
The Growth of Binary Numbers Mega Giga Tera
Conversion Between Number Bases Octal(base 8) Decimal(base 10) 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 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 • Convert from Base 16 to Base 2 • Regroup bits into groups of three starting from right • Ignore leading zeros • Each group of three bits forms an octal digit (8 is represented by 3 binary bits).
Example Convert 101011110110011 to a. octal number b. 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).
Outline • Data Representation • Compliments • Subtraction of Unsigned Numbers using r’s complement • How To Represent Signed Numbers • Floating-Point Representation
Binary Addition Example Add (11110)2 to (10111)2 1 1 1 1 1 1 carries 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 10 0 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 Binary Subtraction • We can also perform subtraction (with borrows). • Example: subtract (10111) from (1001101) 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 9 9 9 9 9 - Digit n Digit n-1 Next digit Next digit First digit
9’s (10-1) complementExamples 9 9 9 9 9 9 - 5 4 6 7 0 0 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. 4 5 3 2 9 9 9 9 9 9 9 - 1 2 3 8 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. Bit n-1 Bit n-2 ……. Bit 1 Bit 0 1 1 1 1 1 - Digit n Digit n-1 Next digit Next digit First digit
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
l’s complement 1 1 1 1 1 1 1 - 1 0 1 1 0 0 1 The complement 1’s of 1011001 is 0100110 0 1 0 0 1 1 0 1 1 1 1 1 1 1 - 0 0 0 1 1 1 1 The 1’s complement of 0001111 is 1110000 1 1 1 0 0 0 0
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 1 0 0 0 0 0 - Digit n Digit n-1 Next digit Next digit First digit
10’s complementExamples 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. 1 0 0 0 0 0 0 - 5 4 6 7 0 0 4 5 3 3 0 0 1 0 0 0 0 0 - 1 2 3 8 9 8 7 6 1 1
2’s complement For binary numbers, r = 2, r’s complement is the 2’s complement. The 2’s complement of N is 2n - N. 1 0 0 0 0 0 - Digit n Digit n-1 Next digit Next digit First digit
1 0 0 0 0 0 0 0 2’s complement Example 1 0 0 0 0 0 0 0 - The 2’s complement of 1011001 is 0100111 1 0 1 1 0 0 1 0 1 0 0 1 1 1 - The 2’s complement of 0001111 is 1110001 0 0 0 1 1 1 1 1 1 1 0 0 0 1
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 sum and discard carry” The 10’s complement of 13250 is 86750. Therefore: M = 72532 10’s complement of N =+86750 Sum= 159282 Discard end carry 105= - 100000 Answer = 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 = 13250 10’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