うたらぼ(アメブロ) -216ページ目

62進数(?)で短縮URL

世の中ほとんどが10進数ですね。


でも、コンピュータの世界では2進数です。

10と表記されていれば、10進数では2です。

2進数のままで表記すると桁数が多くなりすぎるので、16進数で表記します。
10進数の10に相当するものはAと表記します。
16進数の10を10進数に直すと16です。

わかりやすく16進数と10進数を並べてみます。
上が16進数、下が10進数です。

 0 1 2 3 4 5 6 7 8 9 A  B C D E F
 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16進数は数字とアルファベットを使っています。


小文字のアルファベット、大文字のアルファベット、数字の合計は62個あります。
62進数とみなすと、10の表記が10進数では62と考えられますね。


16進数のように62進数を以下の順番に並んでいるとします。

0から9,aからz,AからZ

例えば10進数で10000の場合、
2, 10進数の37に相当する文字, 10進数の18に相当する文字 となります。
桁数が3桁になります。2Bi

例えば10進数で1000000の場合、
4,10進数の12に相当する文字,9,2 となります。
桁数が4桁になります。4c92

桁数が短くなることと、62進数の文字列の並びを変更することによって、
変換の値が予測しにくくなります。

この原理を使って、短縮URLを作ります(現在開発途中)。

使う場合は以下のようになる予定です。

http://mv.utalab.com/?4c92


参考になったサイトはこちらです。

●Converting Numbers To A Character-Set Based Radix Using ColdFusion
http://www.bennadel.com/index.cfm?dax=blog:1540.view