Data Representation
Data Representation Input data transformed into output. A computer is a device that: Accepts input Processes data Stores data Produces output Input data transformed into output. Data can be stored for repeated output.
Data Representation Spreadsheet data graphs 3D models animation Vocals and MIDI Song Bar code Price of item Card and Pin # Money from ATM
Data Representation How can we represent information in a way that can be stored and manipulated by a computer?
Data Representation and Storage External representation: computers use decimal digits (base ten), 26-character alphabet for easier human interaction via keyboard, terminal, printer Internal representation: computers use binary system for numbers, letters, graphics, etc.
Data Representation Internally, computers represent information as patterns of bits A bit (binary digit) is either 0 or 1; these are symbols and have no numeric meaning Storing a bit requires that a device can be in one (and only one) of just two states; analogous to true and false
Data Representation Binary Numbers!!! Sound pitch number binary number Letter number binary number Image color at each pixel number binary number
Decimal Number Systems Base 10 Digits - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 e.g. 34210 = = 3 x 102 + 4 x 101 + 2 x100 = 3 x 100 + 4 x 10 + 2 x 1 = 300 + 40 + 2
Binary Number System Base 2 Digits 0, 1 e.g. 1102 = = 1 x 22 + 1 x 21 + 0 x 20 = 1 x 4 + 1 x 2 + 0 x 1 = 4 + 2 + 0 = 6
Data Representation Solution: use a fixed number of digits. But how many bits do we need? 1 binary digit 0 or 1 2 possible chars 2 binary digits 00, 01, 10, 11 4 chars 3 binary digits 000, 001, 010, 011, 100, 101, 110, 111 8 chars Notice a pattern? 12, 24, 38, … the total number of character that can be represented by n bits is 2n
Data Representation log2n But how many bits are needed to store n symbols? Or, how many bits are needed to represent n numbers? log2n How many bits do we need to represent 16 states, 63 states?
Let’s count 1 bit 2 bits 3 bits 000 ;0 001 ;1 010 ;2 011 ;3 100 ;4 0 ; 0 1 ; 1 2 bits 00 ; 0 01 ; 1 10 ; 2 11 ;3 3 bits 000 ;0 001 ;1 010 ;2 011 ;3 100 ;4 101 ;5 110 ;6 111 ;7
Binary Numerals: Convert to Decimal Bits are numbered from the right b7 b6b5b4b3b2b1b0 Subscripts represent the place value bi has place value 2i Convert to decimal b7 * 27+b6*26 + b5*25 +b4*24 +b3*23 +b2*22 +b1*21 + b0*20
Binary to Decimal: Example 100 = 1 * 22 + 0 * 21 + 0 10 = 1 * 21 + 0 1
Data Representation Binary to Decimal 10011 = 1 * 24 + 0 * 23 + 0 * 22 + 1* 21 + 1 * 20
Data Representation Binary to Decimal 10011 = 1 * 24 + 0 * 23 + 0 * 22 + 1* 21 + 1 * 20 = 16 + 0 + 0 + 2 + 1 = 19
Converting Decimal to Binary Repeatedly divide by 2, recording remainders in reverse order e.g. 53 / 2 = 26 R 1 26 / 2 = 13 R 0 13 / 2 = 6 R 1 6 / 2 = 3 R 0 3 / 2 = 1 R 1 1 / 2 = 0 R 1 giving 110101
Excercise 56d = ?b 1011b = ?d
Addition & Subtraction 1000 + 1 =? 0011 + 0010 = 011 – 010 = 1101 - 1011
4 bits and Hex 0000 ;0 1000 ;8 0001 ;1 1001 ;9 0010 ;2 1010 ;10 (Ah) 0000 ;0 0001 ;1 0010 ;2 0011 ;3 0100 ;4 0101 ;5 0110 ;6 0111 ;7 1000 ;8 1001 ;9 1010 ;10 (Ah) 1011 ;11 (Bh) 1100 ;12 (Ch) 1101 ;13 (Dh) 1110 ;14 (Eh) 1111 ;15 (Fh)
Storing Negative Values Two’s complement!
Storing Negative Values Sign Magnitude use first bit as sign bit, 0 = positive 1 = negative e.g. 8-bits 00000000 = 0 10000000 = −0 00000001 = 1 10000001 = −1 … … 01111111 = 127 11111111 = −127 Problem: has two 0s. Using 2’s Complement instead
Two’s Complement Two’s complement if positive, use binary if negative, complement bits and add one e.g. −53 magnitude 00110101 (binary rep for 53) complement 11001010 (flip each bit) add 1 11001011 (add 1, resulting 2’s complement rep for -53)
Examples: 2’s Complement Rep 3 bit pattern 000 ; 0 001 ; 1 010 ; 2 011 ; 3 100 ; -4 101 ; -3 110 ; -2 111 ; -1 We can use the 2’s complement code of 3 code to find that of -3 And vice versa
Exercise Practice: 2 – 3 using 2’s complement representation as done by a computer Using 3 bit pattern 010 (2) + 101 (-3) = 111 (-1) Using 8 bit pattern 00000010 (2) + 1111 1101 (-3) = 1111 1111 (-1)
8-bit Two’s Complement 00000000 = 0 00000001 = 1 11111111 = −1 00000010 = 2 11111110 = −2 … … 01111111 = 127 10000001 = −127 10000000 = −128
16-bit Two’s Complement 8-bit two’s complement range is − 27 to 27 − 1 − 128 to 127 16-bit two’s complement range is − 215 to 215 − 1 − 32,768 to 32,767
Overflow When a number is too big for the range, overflow will occur Example: with 3 bit pattern 3 + 2 using 2’s complement Two positive number add up to a negative number, overflow Similarly, -4-3 results in a positive number, also overflow
Representing Real Numbers
Representing Real Numbers A number with a whole part and a fractional part 103.334, 0.999999999, 37.0, and 3.14159 Positions to the right of the decimal point are the tenths position: 10-1, 10-2 , 10-3 ... Same rules apply in binary as in decimal Decimal point is actually the radix point Positions to the right of the radix point in binary are 2-1 (one half), 2-2 (one quarter), 2-3 (one eighth)
Representing Real number A real value in base 10 can be defined by the following formula The representation is called floating point because the number of digits is fixed but the radix point floats A binary floating-point value is defined by the formula
Memory Sizes A byte is 8 bits. Kilobyte (K) = 210 = 1,024 bytes Megabyte (Mb) = 220 = 1,048,576 bytes Gigabyte (Gb) = 230 = 1,073,741,824 bytes
Character Representation
Character Representation Assign a code to each character ASCII American Standard Code for Information Interchange 8 bits per character 256 possible codes with 8 bits Unicode, 16 bits per character International language coding standard Superset of ASCII
ASCII American Standard Code for Information Interchange (ASCII ) defines 256 symbols that can be stored in a byte. Each symbol corresponds to a number from 0 -- 255 Symbol Decimal Binary @ 64 01000000 A 65 01000001 B 66 01000010 C 67 01000011 D 68 01000100 E 69 01000101 F 70 01000110 G 71 01000111 H 72 01001000
ASCII Code Code Value Letter 0 Null character 1 - 31 Special Control Characters 10 \n = New line 32 Space 33-47, 58-64, 91-96 Punctuation 48 - 57 0 - 9 65 - 90 A - Z 97 - 122 a - z
Digits 0 through 9 in ASCII Digit Dec Hex 0 48 30 1 49 31 … … … 9 57 39
Unicode Character Examples