he conversion between decimal and binary numbers is given by the following power expansion: d3d2d1do = (8.1) b3b2b1bo. not 9 = VIII. To generate numbers greater than 10 = X, the rule is as follows: 11 = XI, 12 = XII, 18 = XVIII, 19 = XIX, and 20 = XX, and. Then 30 = XXX, 31 = XXXI, up to 39 = XXXIX. Because of the absence of a zero, the powers of ten would be character-consuming should they have to be repeated by as many X. To make numbers more compact, the Romans chose to represent 50, 100, 500, and 1000 by the symbols L, C, D, and M, respectively, with the subtractive rule 40 = XL, 400 = CD, 90 = XC, 900 = CM. Thus, 2006 is represented by MMVI, while 1999 is represented by MCMXCIX. There are additional rules for representing greater numbers, see for instance: http://en.wikipedia.org/wiki/Roman_numerals#IIII_or_IV.3F, htp://ostermiller.org/calc/roman.html. For more on the numeral systems used by different civilizations through history, see p://en.wikipedia.org/wiki/Arabic_numerals. 2 See: http://en.wikipedia.org/wiki/Greek_numerals. The unary system uses a single-character alphabet {1}. Numbers are represented by this character's repeti- tion, starting from zero: 0 = 1, 1=11,2=111,3 = 1111, etc. Albeit not practical, such a code can have interesting applications, for instance, in Turing machines (see Chapter 7). 8.2 Coding language Thus, the decimal number D=3 = 1 x 2  + 1 x 20 corresponds to the binary number B = 11, and the decimal D=1539 corresponds to the binary B = 11 000 000 011, for instance. It is easy to establish that the maximum decimal value for an n-bit binary number is D = 2n - 1. For instance, D = =23-1 corresponds to B = 111, and D = 15 =24- 1 corresponds to B = 1111, which represent the maximum decimal values for 3-bit and 4-bits binary numbers, respectively. For practical handling, long binary numbers are usually split into subgroups of eight bits, which are called bytes. The byte itself can be divided into two subgroups of four bits. Since B = 1111 is equal to D = 15, one can represent a byte 