ローマ数字変換ツールは入力欄が 1 つだけで, 同時に両方向に働きます. 1994 と入力すると MCMXCIV と返します. MCMXCIV と入力すると 1994 を返します. 小文字でも, 文字間にスペースがあっても問題ありません. 結果カードはアラビア数字とローマ数字を並べて表示し, どちらにもコピーボタンがあります. 下の参考表は 7 つの基本記号を列挙します: I が 1, V が 5, X が 10, L が 50, C が 100, D が 500, M が 1,000.
数字はどのように分解されるか
変換は大きい順の 13 段の表をたどります: M (1,000), CM (900), D (500), CD (400), C (100), XC (90), L (50), XL (40), X (10), IX (9), V (5), IV (4), I (1). 収まるだけ各記号を結果に追加していきます. 1,994 は M が 1,000, CM が 900, XC が 90, IV が 4 になります: MCMXCIV. 年号 2,026 は MM, XX, VI の順で MMXXVI. プレースホルダの例 42 は XL に II: XLII.
減算の 6 組
合法的な減算は 6 組だけです: IV (4), IX (9), XL (40), XC (90), CD (400), CM (900). 検証は正格な順序に対する厳しいパターンなので, 49 は IL ではなく XLIX, 99 は IC ではなく XCIX, 44 は XXXXII のような X の 4 連続は認められず (同じ記号は最大 3 回まで) XLIV になります. VV, IIII, XM も同じ経路で拒否されます. パターンは M ブロック, C か D ブロック, X か L ブロック, I か V ブロックが降順でしか出現しないことを確認します.
範囲, とその 1 つの抜け穴
アラビア数字は 1 から 3,999 の間の整数でなければなりません. 0 と 4,000 はどちらも範囲エラーになります. 3,999 は正格なローマ数字の最大値で, MMMCMXCIX と書きます: M が 3 つ, その次 CM, XC, IX. 抜け穴: ローマ数字入力の上端はありません. パターンは M の連続を任意の長さ認めるため, MMMM は 4,000 として, MMMMM は 5,000 として解析されます. アラビア数字入力から両方の文字列が作れることはないのに.
入力欄が実際に受け入れるもの
入力欄はまずテキストを整数として読み, テキストがその整数と完全に一致する時のみ変換します. 前後に余分なスペースのある 42 は動きます. テキストは先にトリムされるためです. 一方 42.0 は失敗します. 42 に解析されますが, 2 つの文字列が一致しないため, テキストはローマ数字として扱われ, 拒否されます. カンマ付きの 1,994 も同じ挙動です. ローマ側では, 大文字小文字と内部のスペースは無視されます: mcmxciv でも m c m x c i v でも 1994 が返ります.
その数字はどこで働くか
ローマ数字は年号板, 章の番号, 時計の面の上に生き続けます. 2,026 は学位証書やタイトルの幕で MMXXVI になります. MCMXCIV は 7 文字, 1994 は 4 文字です. 文字数カウンターはその長さ差を具体的に見せます. テキスト逆さ変換で文字を反転すると VICXMCM になり, 変換ツールはこれを拒否します. 順序規則がどれほど厳しいかの最速デモです. 基数変換ツールは数字システムのもう一方を扱います: 1994 は 2 進で 11111001010, 16 進で 7CA. モールス符号ツールは最も近い親戚です: 小さい固定アルファベットで値を綴る別の方式.
関連記事
シーザー rot13ツールはローマ時代のもう一つの古典です. 記号から数字を組み立てる代わりに, 各文字を固定量だけずらします. もう一篇の比率系のチュートリアルはアスペクト比の計算方法を, テキスト側の掃除手順はエスケープツールの使い方を見てください.