Next: , Previous: , Up: Arithmetic   [Contents][Index]


6.5.2 Double precision

テキスト・インタプリタが2倍長整を認識するために使用するルールについては、 Number Conversion を参照してください。

数値は 2 の補数演算を使用する Gforth で表されるため、符号付き単精度浮動小数点数を (符号付き) 倍精度浮動小数点に変換するには、最上位セル全体で符号拡張が必要です。 倍精度整数はセルのペアで表され、 上位側のセルが TOS にあります。 符号無しの1倍長整数を2倍長整数に変換するのは簡単で、 0 を TOS にプッシュするだけです。 整数値は Gforth では 2 の補数表現を使うため、 符号付き1倍長整数を(符号付き)2倍長整数に変換するには、 上位側セル全体で符号拡張が必要です。 これは s>d を使用して実現できます。 このことから分かるとおり、 それが符号無し整数を表しているのか、 符号有り整数を表しているのか分からなければ、 数値を変換できないということです。

これらのワードはすべて符号付きオペランドに対して定義されていますが、 一部のワードは符号無しの数値に対しても機能します: d+d-

s>d ( n – d  ) core “s-to-d”
d>s ( d – n  ) double “d-to-s”
d+ ( ud1 ud2 – ud ) double “d-plus”
d- ( d1 d2 – d ) double “d-minus”
dnegate ( d1 – d2 ) double “d-negate”
dabs ( d – ud  ) double “d-abs”
dmin ( d1 d2 – d  ) double “d-min”
dmax ( d1 d2 – d  ) double “d-max”