Prev / Next / /home/pochi/ChangeLog

万能数値表現法 URR[computer]

2006-07-31

http://homepage2.nifty.com/m_kamada/docsproc/asmurr.htm
via http://www.rubyist.net/~matz/20060726.html#p02

コンピュータでの浮動小数点数の取扱いは、
IEEE754が一般的なんだけど、こんな考え方もあるのか。

ちなみに IEEE754 の詳細は wikipedia とかにあるね。

Wikipedia - 浮動小数点数
Wikipedia - IEEE754


URR は日本人によって考案された表現方法で、
考案された当時の技術では実装が困難だったために、
規格化されなかったものらしい。

読んでみるとわかるけど、まさに天才的。

長所

- オーバーフローやアンダーフローが事実上発生しない。
  32 ビットの URR で表現できる数値の最大値は 10 進数に
  1 億桁以上の数になる
- ±1 の近辺で精度が非常に高い
- データのサイズに関係なく一定のフォーマットである
  精度を下げるときは末尾を切り捨て、
  精度を上げるときは末尾に 0 を補うだけ。
- 大小の比較が符号つき整数と同じ手順でできる
- 符号の反転が符号つき整数と同じ手順でできる

短所

- デコードがやや面倒。
- 例外的な表現を入れる余地がない
  IEEE 754 で言うところの NaN(非数)を表現することができない

permlink