Roman Numerals were used in Europe until the 18th century and even today in certain applications. Generally the only place we see them today is an alternative way of expressing a given Natural Number such as year, or hour on a clock, or Superbowl number.
Roman Numerals are not a positional system and contain no symbol of zero. Rather, they are an additive system with each symbol taking on a definite numeric value regardless of where it appears. Actually there a few subtractive rules that makes writing a value somewhat more compact that do depend upon position relative to another symbol.
The symbols and their values are:
I  V  X  L  C  D  M 
1  5  10  50  100  500  1000 
The table can be extended to larger values by using the convention that a bar over a symbol indicates "1000 times:"
V  X  L  C  D  M 
5000  10,000  50,000  100,000  500,000  1,000,000 
For our purpose we will generally utilize values that are sufficiently small to be written without the "barred" symbols.
While a particular symbol takes on a given value regardless of its position, it is customary to write the number from lefttoright with the "largest" symbols first.
A Roman value of, as an example: DCCLXVII
would be:
500 + 100 + 100 + 50 + 10 + 5 + 1 + 1 = 767
Of course, the Romans would not have been able to think in terms of our numeric values. They could only manipulate the symbols directly. As an example, they would not have known that VV is an X because 5 + 5 = 10. They would have needed to memorize and use a grouping equivalence table:
IIIII  is equivalent to  V 
VV  is equivalent to  X 
XXXXX  is equivalent to  L 
LL  is equivalent to  C 
CCCCC  is equivalent to  D 
DD  is equivalent to  M 
Such an equivalence would have reduced the number of symbols in a number. As an example, 600 could be written as CCCCCC (or 100+100+100+100+100+100). This would have been "simplified" by the equivalence rules to the properly written DC (or 500+100). For that matter, 600 could be expressed as 12 L's or 60 X's or 120 V's or 600 I's or some combination as long as the sum of all the characters totaled 600. In all cases, by applying the equivalence rules to shorten the expression by replacing several symbols with one we would get DC.
Simply applying the rules so far could lead to a Roman value such as VIIII (or 9). To write this more compactly, we use the convention that we can "subtract" a symbol representing a 1, 10, or 100 from the next two higher symbols, respectively, by writing the smaller to the left. Therefore the only subtractive forms are:
write  instead of  value 
IV  IIII  4 
IX  VIIII  9 
XL  XXXX  40 
XC  LXXXX  90 
CD  CCCC  400 
CM  DCCCC  900 
Therefore, as an example: MCMXCIV
would be:
1000 + 900 + 90 + 4 = 1994
The 900, of course, comes from the pair of symbols: CM.
The Roman value is equivalent to: MDCCCCLXXXXIIII. While this is less compact, we shall see that this equivalent form without any subtractives can be useful.
By the way, not every source agrees to some of the details of Roman Numerals. As an example, we could expand the definition of a subtractive and form 99 as IC rather than XCIX as we would according to the rules above. Indeed, it is not clear if the Romans actually used the subtractives to write the numbers compactly.
Conversion to and from ordinary numbers is accomplished rather easily.
from Roman
Simply add up the values of the Roman symbols. Of course, if a subtractive appears with a I, X, or C to the left of a "larger" symbol, we need to substitute the pair for the correct numeric value.
to Roman
Start by removing the largest Roman values first and subtracting the removed value until we have converted the entire value. We keep trying to remove a given Roman value until we cannot, then we try the next smaller one. As an example:
value  symbol to try  result  value left  Roman value 
2349  M or 1000  yes  1349  M 
1349  M or 1000  yes  349  MM 
349  M or 1000  no  349  MM 
349  D or 500  no  349  MM 
349  C or 100  yes  249  MMC 
249  C or 100  yes  149  MMCC 
149  C or 100  yes  49  MMCCC 
49  C or 100  no  49  MMCCC 
49  L or 50  no  49  MMCCC 
49  X or 10  yes  39  MMCCCX 
39  X or 10  yes  29  MMCCCXX 
29  X or 10  yes  19  MMCCCXXX 
19  X or 10  yes  9  MMCCCXXXX 
9  X or 10  no  9  MMCCCXXXX 
9  V or 5  yes  4  MMCCCXXXXV 
4  V or 5  no  4  MMCCCXXXXV 
4  I or 1  yes  3  MMCCCXXXXVI 
3  I or 1  yes  2  MMCCCXXXXVII 
2  I or 1  yes  1  MMCCCXXXXVIII 
1  I or 1  yes  0  MMCCCXXXXVIIII 
The table above would indicate the steps a computer would move through. A human would normally take some short cuts by lumping. As an example, we readily see that there are two "thousands" in the original value and would immediately write down: MM. There are three "hundreds" so we get MMCCC, etc until we get the entire number converted.
There is one more step we need to do. We need to substitute for any subtractive values. To do this we proceed righttoleft and look for four of the same symbol. Since there are four I's we check the next symbol on the left and substitute IX for the VIIII. (Note, if the Roman value were something like, MDIIII, we could not utilize the D so we would end up with MDIV.) After making this substitution we have: MMCCCXXXXIX.
In this value there are four X's with a preceding C. These X's become XL. Thus the final Roman numeral value is: MMCCCXLIX.
If you were asked to add two Roman valves such as CXXII + LXI, you would probably convert these two values to regular numbers, add them (122 + 61 = 183), and finally convert back to Roman Numerals: CLXXXIII. This is because it is relatively easy to convert and we know how to add ordinary decimal numbers.
The Romans could not do this! They needed a method of manipulating the Roman symbols directly to achieve the addition!
It turns out that an algorithm for adding Roman numbers directly is actually quite easy. This was fortunate for the Roman engineers and accountants.
The algorithm has just five steps:
As an example, perform CCCLXIX + DCCCXLV.
1.  Substitute for any subtractives to obtain:  CCCLXVIIII + DCCCXXXXV  
2.  Catenate to obtain:  CCCLXVIIIIDCCCXXXXV  
3.  Sort to obtain:  DCCCCCCLXXXXXVVIIII  
4.  Combine groups to obtain:  DCCCCCCLXXXXXXIIII DCCCCCCLLXIIII DCCCCCCCXIIII DDCCXIIII MCCXIIII 

5.  Substitute any subtractives to obtain:  MCCXIV 
You can verify that this is indeed the correct by converting the values to regular notation: 369 + 845 = 1214.
Subtraction directly is also reasonably easy, but there is a process akin to "borrowing" that needs to be included. If addition is accomplished by putting the two values together to form a result, subtraction is accomplished by "crossing out" symbols in the value that is being subtracted in the starting value.
Here is a simple example: LXVIII − XII. In the first value, LXVIII "cross out" or remove common symbols: LXVIII or, in final form, LVI.
We will assume that the subtraction is possible; that is, the result is 1 or larger. (Note, Roman Numerals cannot express zero or negative numbers.)
The algorithm becomes:
1.  Substitute for any subtractives to obtain:  CXXVIIII − XXXXIII  
2.  a. cross out common symbols:  C 

b. need X's, convert C to LXXXXX  LXXXXX LXXX 

3.  Rewrite:  LXXXVI  
4.  Check for grouping:  LXXXVI  
5.  Substitute any subtractives to obtain:  LXXXVI 
You can verify that this is indeed the correct result by converting the values to regular notation: 129 − 43 = 86.
The "borrowing" rule 2b above may need to take on a slightly more complicated approach. Consider D − X. The D must be replaced with a series of symbols that includes an X. It becomes: CCCCC which in turn becomes CCCCLL which finally becomes CCCCLXXXXX. After "crossing out" the common symbols, the result is CCCCLXXXX with a final compact answer of CDXC.
If the conversion in step 2 is done carefully, then there should not be anything for step 4 to do. That is, it should be possible always to introduce a minimum number of needed symbols during step 2.
Multiplication is rather obvious once you realize that the Roman symbols are additive; that is, CXI is really C + X + I. To multiply two multinomial expressions in algebra like (a+b)(x+y+z) we multiply each term in the first by every term in the second and add the results. This is the approach for multiplying Roman numbers.
First we need a multiplication table. Due to the nature of the values of the Roman symbols (every value involves only 5's and 10's) this is easy to form and learn:
times  I  V  X  L  C  D 
I  I  V  X  L  C  D 
V  V  XXV  L  CCL  D  MMD 
X  X  L  C  D  M  V 
L  L  CCL  D  MMD  V  
C  C  D  M  V  
D  D  MMD  V 
The value V, of course, may be written as MMMMM.
The algorithm for multiplication is very similar to the one for addition with just five steps:
1.  Substitute for any subtractives to obtain:  XXI•XVII  
2.  Form products and catenate to obtain:  CLXX CLXX XVII  
3.  Sort to obtain:  CCLLXXXXXVII  
4.  Combine groups to obtain:  CCLLLVII CCCLVII 

5.  Substitute any subtractives to obtain:  CCCLVII 
In step two, we get X "times" XVII to obtain CLXX. The second X in the first value gives the same, and finally the I "times" gives XVII. It is these three values that are catenated together to form the result. (Note the catenation performs the addition of the intermediate partial products.)
You can verify that this is indeed the correct by converting the values to regular notation: 21•17 = 357.
Division is somewhat more complicated. Any process should take the two values and produce a quotient and a remainder. Since we cannot represent a zero, a remainder of zero will be simply "no remainder."
Essentially, we can perform division by repeated subtraction. If we count the number of times we can subtract the divisor until the dividend becomes smaller than the divisor, the quotient is the count we get and the remainder is what is left. As an example, 39 divided by 8 gives us:
value  can we subtract 8?  result  count 
39  yes  31  1 
31  yes  23  2 
23  yes  15  3 
15  yes  7  4 
7  no  7  4 
The answer for 39 divided by 8 is a quotient of 4 and a reminder of 7.
This process should work in any notation that we can perform subtraction including Roman values.
However, consider the work involved if we divide 2417 by 17! (Quotient is 142 with a remainder of 3.)
If we really did this with regular numbers we could save considerable work by "shifting" the divisor by multiplying by a power of 10. We see that if we start with 100•17 = 1700. When we count as we subtract, we will count by 100's. When this value is too large, we divide by 10 and count by 10's, then finally divide again by 10's and count by 1's.
starting value  trial subtractor  can we subtract it?  result  count 
2417  1700  yes  717  100 
717  1700  no  717  100 
717  170  yes  547  100+10=110 
547  170  yes  377  110+10=120 
377  170  yes  207  120+10=130 
207  170  yes  37  130+10=140 
37  170  no  37  140 
37  17  yes  20  140+1=141 
20  17  yes  3  141+1=142 
3  17  no  3  142 
The quotient is 142 and the remainder is 3. This involves 10 steps rather than the 142 steps needed if we simply subtracted 17 over and over!
We took advantage of the fact that with decimal numbers we can multiply by 10 quite easily by simply catenating a zero to the right.
With Roman numerals we can easily multiply a Roman value by C or X or even L or V. Each symbol in the original is replaced a single or set of symbols according to the multiplication table above. We can subtract by "crossing out." Counting is performed by catenation.
We do need one additional process—we need to be able to determine if one Roman number is larger than another.
This "subprocess" is not hard. It is based upon: "If a number contains more of a given symbol, then it is larger." This will be true if we proceed from the "largest" to the "smallest" symbols ignoring those that contain the same number of a symbol until we find the first occurence where there is more of one.
As an example, MMCXXXVI is smaller than MMCCCCXVI because the second contains more C's.
And MMMDXXXVI is larger than MMMCCCCLVII because the first contains more D's.
In both the cases the M's cannot decide the answer because there are the same number in each of the pairs.
Let us try dividing MMMDCCIV by XIV.
The first step is to rewrite these without subtractives: MMMDCCIIII and XIIII
Next form multiples of the divisor:
I  XIIII 
V  LVVVV 
X  CXXXX 
L  DLLLL 
C  MCCCC 
D  MMMMMDDDD 
The last one is clearly too large—contains more M's than the dividend. Therefore we start out subtraction process with the "C times."
starting value  trial subtractor  starting value after "borrowing"  after "crossing out"  count 
MMMDCCIIII  MCCCC  MMMCCCCCCCIIII  MMCCCIIII  C 
MMCCCIIII  MCCCC  MDCCCCCCCCIIII  DCCCCIIII  CC 
DCCCCIIII  MCCCC too large  DCCCCIIII  CC  
DCCCCIIII  DLLLL  DCCLLLLIIII  CCIIII  CCL 
CCIIII  DLLLL too large  CCIIII  CCL  
CCIIII  CXXXX  CLXXXXXIIII  LXIIII  CCLX 
LXIIII  CXXXX too large  LXIIII  CCLX  
LXIIII  LVVVV too large  LXIIII  CCLX  
LXIIII  XIIII  LXIIII  L  CCLXI 
L  XIIII  XXXXVIIIII  XXXVI  CCLXII 
XXXVI  XIIII  XXXIIIIII  XXII  CCLXIII 
XXII  XIIII  XVIIIIIII  VIII  CCLXIIII 
VIII  XIIII too large  VIII  CCLXIIII 
We are done! The quotient is CCLXIIII or CCLXIV and the remainder is VIII.
If the divisor divided the dividend exactly then the last "crossing out" step would be complete with nothing left.
Did the Romans actually calculate using these exact procedures? Probably not. They may have utilized shortcuts and other schemes. However, the above processes do perform the arithmetic operations by manipulating the symbols of the Roman written values directly without first converting them to our decimal representation. In many respects these Roman procedures are easier than the corresponding ones for ordinary numbers since they involve only processes such as catenation, arranging the symbols in order, grouping symbols, "borrowing", and "crossing out."
It is important to remember that the Romans did not think in terms of our familiar numbers—they thought only in terms of the Roman Numbers.
They were familiar with numbers such as XIII and MCMLXVIII directly without thinking these were 13 and 1968.
They had a lifetime of experience with numbers represented only as Roman Numerals.