テキスト・インタープリターが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”