Number Systems Part I CS 215 Lecture 5
Number Systems - Part I CS 215 Lecture # 5
Motivation The representation of numbers is made difficult because of the discrete nature of computer representation ¡ Not all numbers can be represented in a computer ¡ The chosen method of representation affects the ease by which arithmetic operations are performed ¡
Unary Representation In a unary representation, the number one is represented by a single mark, the number two by two marks, etc. ¡ Unary has limitations: ¡ l l the number of symbols necessary to represent a number grows directly with the value negative numbers can not be represented
Roman Numerals I V X L C D M 1 5 10 50 100 500 1000 • Roman numerals are sorted by decreasing values • A symbol representing a smaller value preceding a symbol representing a larger value means we have to subtract the smaller value from the larger value • Only a single smaller symbol may precede a larger one • Only symbols representing powers of ten (I, X, C) may be placed out of order
Addition in Roman Numerals? A possible algorithm ¡ Convert all position sensitive symbols into position insensitive form ¡ Sort by values of symbols ¡ Merge the two position-insensitive representations into a single positioninsensitive representation ¡ Combine lowest-value types into higher valuetypes ¡ Create legal Roman numerals by converting back to the unique format
Example 5. 1 XIX (19) + MXMV (1995) ¡ XIX = XVIIII MXMV = MDCCCCLXXXXV ¡ XVIIII + MDCCCCLXXXXV = MDCCCCLXXXXXVVIIII ¡ MDCCCCLXXXXXVVIIII = MDCCCCLXXXXXXIIII = MDCCCCLLXIIII = MDCCCCCXIIII = MDDXIIII = MMXIIII ¡ MMXIIII = MMXIV (2014)
Weighted Positional Notation Use the position of the symbol to indicate the value ¡ By assigning each position the appropriate power of the base, we can get a unique representation of numbers in that base Decimal System (Base 10) ¡ Given a sequence of n digits d 0, d 1, …, dn-1. 10 n-1 + … + d 1. 101 + d 0. 100
¡ In general, given a sequence of n digits s 0, s 1, …, sn-1 and a base b, sn-1. bn-1 + … + s 1. b 1 + s 0. b 0 yields a unique integer N ¡ s 0 is the least significant digit ¡ sn-1 is the most significant digit ¡ The most significant symbol can not be zero
Any positive integer value can be used as the base or radix for a weighted positional notation ¡ For bases less than or equal to 10, a subset of the ten decimal digits can be used, e. g. , binary (base 2) and octal (base 8) ¡ For bases more than 10, new symbols will have to be introduced, e. g. , hexadecimal (base 16) ¡
We use a subscript to indicate the base of the number when we are writing. ¡ In programming languages, octal representation may be preceded with a zero (0), e. g. , 033. ¡ A hexadecimal representation may be preceded with 0 x, e. g. , 0 x 1 b ¡ SAL and MAL use these for hexadecimal and decimal numbers; octal is not recognized ¡
Representations in different radices binary octal 000 0 001 1 010 2 011 3 100 4 1111 17 hexa 0 1 2 3 4 F decimal 0 1 2 3 4 15
Hexadecimal and Octal Hex Octal Decimal Binary 1 2 3 4 5 6 7 8 9 A B C D E F 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
Discriminating only between two symbols would be far cheaper in digital circuitry than three, four, etc. thus binary is the chosen representation for computers. ¡ Since bits can be grouped into three to obtain octal value and into four to obtain hexadecimal value, it is much easier for humans to work with octal and hexadecimal representations. ¡
hexadecimal, octal, and binary To convert the octal or hexadecimal representation from binary simply group them starting from the least significant bit into three for octal and into four for hexadecimal Example binary 11011 octal 011 3 3 hexa 0001 1011 1 B hence: 11011 is 338 or 1 B 16 or 0 x 1 B or 033
Example 5. 2 Convert 11101 to octal _____ Convert 11101 to hexadecimal _____ Convert 100110 to octal _____ Convert 1100 to hexadecimal_____
Zero and negative numbers To represent zero, we violate the rule that says the most significant symbol can not be zero, and use the single symbol ‘ 0’ ¡ We can specify, a symbol ‘-’ that is placed only at the beginning of the sequence to signify negative numbers ¡ The absence of or presence of the symbol ‘+’ signify positive numbers ¡
Conversion into Decimal Given a sequence of base-r digits sn 1. . . s 1 s 0 convert the sequence into a decimal number N using: N = sn-1. bn-1 + … + s 1. b 1 + s 0. b 0
Example 5. 3 Convert 10 01102 to decimal. N = 1*25 + 0*24 + 0*23 + 1*22 + 1*21 + 0*20 = 3810 Convert 3 b 216 to decimal. N = 3*162 + 1110*161 + 2*160 = 94610 Convert 3708 to decimal. N = 3*82 + 7*81 + 0*80 = 192 + 56 + 0 = 24810
Example 5. 4 Convert the following to decimal: 1. 3467 _______ 2. 123 _______ 4. 1448 _______ 5. 6 A 16 _______ 6. 1002 _______
- Slides: 19