進数変換
目的地に歩いていくと遠くの方に小屋らしきものが見えてきた。物資を渡し代わりに、ここでの生活に必要なものを受けとる手はずになっている。
小屋のドアをノックする。念のために用意した武器を手に持ちながら。ノックしドアを開けると、誰もいなかった。
「いや、誰かがいる気がする。」
「ここに来るようにと言われたんですが。コーディネーターの方はいませんか?」と声を張り上げる。
すたすたと足音ともに一人の女性が近づいてきた。
コーディネーター「交代要員の方ですね、お待ちしていました。それでは、物資の交換します。」
「物資?」
ナビが反応し物資を示した。そしてそれを取り出す。
コーディネーター「中身を確認します。問題はないようです。では、これを受け取りください。」
受け取って中身を確認すると貨幣のようなものや、身分証明書のようなものが入っていた。
文字のようなものを見続けていると、「文字認識システムを起動しますか?」という画面が出て承認すると、文字が読み取り日本語に変換された。
数種類の通貨があり、この通貨をわかりにくくしているのは通貨に数字がついていないのと、硬貨に使われている金属にその価値を依存していることにありそうだ。銅貨100枚で銀貨1枚、銀貨10枚で金貨一枚とする。すると銅貨一枚を10円、銀貨一枚が1000円で金貨一枚が1万円と価値の変換ができる。単一通貨ではないため、本来はもっと複雑で価値の把握が困難になっている。
金貨×10000+銀貨×1000+銅貨×10とすると円の価値に変換できて理解しやすい。
銅貨が一〇万五千八百六十五枚あったとすると円価値で一〇五万八千六百五〇円となる。これをもっとも硬貨の枚数が少なくなるようにすると。
全硬貨を一万で割ると105と余りが出る。
その余りを1000で割ると8と余り・・・。
計算が面倒なのでプログラムなどを書いて計算機にやらせる。ちなみにJavaScriptである。
yen=1058650
g=10000
s=1000
c=10
gold=Math.floor(x/g)
x=x%g
silver=Math.floor(x/s)
x=x%s
cupper=Math.floor(x/c)
yen=gold*g+silver*s+cupper*c
ナビ「スキルに進数変換が追加されました。通貨プログラムを統合しますか?」
これは、もしかして勉強しながらスキルを追加していく事になるのだろうか。
表示が海外の通販サイトで買うときのように自動に円換算されて表示されるようになった。プログラムを書くことでナビのシステムを拡張できるのだろう。あとで、プログラムの間違いに気づくことになる。
このとおり、やや勉強的なものも含めて書いていこうかな。通貨の換算をサラッと流すものが多いので掘り下げると面白くなるかなと書いてみた。10進数だけではなく情報工学でよく使われる8進数にすればそれっぽくなったが、そこまで凝る必要も感じなかった。