Les chiffres romains, bien qu'ils puissent paraître aujourd'hui moins pratiques et moins efficaces que notre système de numération décimale moderne, demeurent encore très présents dans de nombreux domaines de la vie courante. On les retrouve fréquemment dans la numérotation des chapitres de livres, des annexes de documents administratifs, des préfaces, des pages introductives d'ouvrages, ainsi que dans les titres de films, d'opéras ou de séries dont les suites sont identifiées à l'aide de symboles romains. Leur apparence élégante et leur riche héritage historique expliquent en grande partie leur survie à travers les siècles.
Issus de la civilisation romaine antique, ces chiffres reposent sur un système de symboles utilisant principalement les lettres I, V, X, L, C, D et M pour représenter différentes valeurs numériques. Contrairement aux systèmes positionnels modernes comme le binaire, l'octal, le décimal ou l'hexadécimal, les chiffres romains utilisent des règles d'addition et de soustraction pour construire les nombres. Ainsi, IV représente 4 tandis que IX représente 9, ce qui permet de réduire la répétition excessive de certains symboles.
Le tableau suivant présente les équivalences entre plusieurs nombres romains et leurs représentations dans différents systèmes de numération. Cette comparaison permet de mieux comprendre les différences entre les méthodes de représentation des nombres utilisées au cours de l'histoire et celles employées par les ordinateurs modernes.
Il est toutefois important de noter que le système romain devient rapidement peu pratique lorsque les valeurs augmentent fortement. Bien qu'il soit possible de représenter des nombres de plusieurs milliers d'unités, ce système n'a jamais été conçu pour manipuler efficacement de très grandes quantités ni pour effectuer des calculs complexes. C'est d'ailleurs l'une des raisons pour lesquelles les chiffres arabes ont progressivement remplacé les chiffres romains dans la plupart des usages scientifiques et commerciaux.
Voici leur représentation classique :
| Nombre Romain | Nombre décimal | Nombre octal | Nombre hexadécimal |
|---|---|---|---|
| I | 1 | 1 | 1 |
| II | 2 | 2 | 2 |
| III | 3 | 3 | 3 |
| IV | 4 | 4 | 4 |
| V | 5 | 5 | 5 |
| VI | 6 | 6 | 6 |
| VII | 7 | 7 | 7 |
| VIII | 8 | 10 | 8 |
| IX | 9 | 11 | 9 |
| X | 10 | 12 | A |
| XI | 11 | 13 | B |
| XII | 12 | 14 | C |
| XIII | 13 | 15 | D |
| XIV | 14 | 16 | E |
| XV | 15 | 17 | F |
| ... | ... | ... | ... |
Malgré ces limitations, il peut être très intéressant d'automatiser la génération de nombres romains à partir de leur équivalent numérique. Une telle conversion est souvent utile dans les logiciels de traitement de texte, les systèmes de publication, les applications éducatives ou encore les programmes de gestion documentaire. À l'aide du code source Delphi/Kylix/Lazarus présenté ci-dessous, vous trouverez facilement la réponse que vous souhaitez en transformant automatiquement des nombres décimaux en leur représentation romaine classique, à l'aide du code source Delphi/Kylix/Lazarus suivant :
- Program roman;
-
- {$APPTYPE CONSOLE}
- Uses SysUtils;
-
- Function NumberToRomain(X:Integer):String;
- Var
- S:String;
- Begin
- S:='';
- Case(X mod 1000) div 100 of
- 9: S:=S+'CM';
- 8: S:=S+'DCCC';
- 7: S:=S+'DCC';
- 6: S:=S+'DC';
- 5: S:=S+'D';
- 4: S:=S+'CD';
- 3: S:=S+'CCC';
- 2: S:=S+'CC';
- 1: S:=S+'C';
- End;
- Case(X mod 100) div 10 of
- 9: S:=S+'XC';
- 8: S:=S+'LXXX';
- 7: S:=S+'LXX';
- 6: S:=S+'LX';
- 5: S:=S+'L';
- 4: S:=S+'XL';
- 3: S:=S+'XXX';
- 2: S:=S+'XX';
- 1: S:=S+'X';
- End;
- Case X mod 10 of
- 9: S:=S+'IX';
- 8: S:=S+'VIII';
- 7: S:=S+'VII';
- 6: S:=S+'VI';
- 5: S:=S+'V';
- 4: S:=S+'IV';
- 3: S:=S+'III';
- 2: S:=S+'II';
- 1: S:=S+'I';
- End;
- NumberToRomain:=S;
- End;
-
- Var
- I:Integer;
-
- BEGIN
- FOR I:=1 TO 100 DO WriteLn(I,' = ',NumberToRomain(I));
- END.
on obtiendra le résultat suivant :
1 = I2 = II
3 = III
4 = IV
5 = V
6 = VI
7 = VII
8 = VIII
9 = IX
10 = X
11 = XI
12 = XII
13 = XIII
14 = XIV
15 = XV
16 = XVI
17 = XVII
18 = XVIII
19 = XIX
20 = XX
21 = XXI
22 = XXII
23 = XXIII
24 = XXIV
25 = XXV
26 = XXVI
27 = XXVII
28 = XXVIII
29 = XXIX
30 = XXX
31 = XXXI
32 = XXXII
33 = XXXIII
34 = XXXIV
35 = XXXV
36 = XXXVI
37 = XXXVII
38 = XXXVIII
39 = XXXIX
40 = XL
41 = XLI
42 = XLII
43 = XLIII
44 = XLIV
45 = XLV
46 = XLVI
47 = XLVII
48 = XLVIII
49 = XLIX
50 = L
51 = LI
52 = LII
53 = LIII
54 = LIV
55 = LV
56 = LVI
57 = LVII
58 = LVIII
59 = LIX
60 = LX
61 = LXI
62 = LXII
63 = LXIII
64 = LXIV
65 = LXV
66 = LXVI
67 = LXVII
68 = LXVIII
69 = LXIX
70 = LXX
71 = LXXI
72 = LXXII
73 = LXXIII
74 = LXXIV
75 = LXXV
76 = LXXVI
77 = LXXVII
78 = LXXVIII
79 = LXXIX
80 = LXXX
81 = LXXXI
82 = LXXXII
83 = LXXXIII
84 = LXXXIV
85 = LXXXV
86 = LXXXVI
87 = LXXXVII
88 = LXXXVIII
89 = LXXXIX
90 = XC
91 = XCI
92 = XCII
93 = XCIII
94 = XCIV
95 = XCV
96 = XCVI
97 = XCVII
98 = XCVIII
99 = XCIX
100 = C