表 4-5 に示すコマンドは、単精度整数演算を行います。
表 4-5 単精度演算機能
コマンド |
スタックダイアグラム |
説明 |
---|---|---|
+ |
( nu1 nu2 -- sum ) |
nu1 + nu2 の加算を行います。 |
- |
( nu1 nu2 -- diff ) |
nu1 - nu2 の減算を行います。 |
* |
( nu1 nu2 -- prod ) |
nu1 × nu2 の乗算を行います。 |
*/ |
( n1 n2 n3 -- quot ) |
nu1 * nu2 / n3 を計算します。入力、出力、中間値はすべて 1 つのセルに入ります。 |
/ |
( n1 n2 -- quot ) |
n1 を n2 で割ります。剰余は捨てられます。 |
1+ |
( nu1 -- nu2 ) |
1 を足します。 |
1- |
( nu1 -- nu2 ) |
1 を引きます。 |
2+ |
( nu1 -- nu2 ) |
2 を足します。 |
2- |
( nu1 -- nu2 ) |
2 を引きます。 |
abs |
( n -- u ) |
絶対値。 |
bounds |
( start len -- len+start start ) |
do または ?do ループ用に start、len を end、start に変換します。 |
even |
( n -- n | n+1 ) |
最も近い偶数の整数 >= n に丸めます。 |
max |
( n1 n2 -- n3 ) |
n1 と n2 の大きいほうの値を n3 とします。 |
min |
( n1 n2 -- n3 ) |
n1 と n2 の小さいほうの値を n3 とします。 |
mod |
( n1 n2 -- rem ) |
n1 /n2 の剰余を計算します。 |
*/mod |
( n1 n2 n3 -- rem quot ) |
n1 * n2 / n3 の剰余と商。 |
/mod |
( n1 n2 -- rem quot ) |
n1 / n2 の剰余と商。 |
negate |
( n1 -- n2 ) |
n1 の符号を変更します。 |
u* |
(u1 u2 -- uprod ) |
符号なしの 2 つの数値を乗算し、符号なしの積を生じます。 |
u/mod |
( u1 u2 -- urem uquot ) |
符号なし 1 セル数値を符号なし 1 セル数値で割り、 1 セルの剰余と商を生じます。 |
<< |
( x1 u -- x2 ) |
lshift の同義語。 |
>> |
( x1 u -- x2 ) |
rshift の同義語。 |
2* |
( x1 -- x2 ) |
2 を掛けます。 |
2/ |
( x1 -- x2 ) |
2 で割ります。 |
>>a |
( x1 u -- x2 ) |
x1 を u ビット右に算術シフトします。 |
and |
( x1 x2 -- x3 ) |
ビット単位の論理積。 |
invert |
( x1 -- x2 ) |
x1 の全ビットを反転します。 |
lshift |
( x1 u -- x2 ) |
x1 を u ビット左シフトし、下位ビットにゼロを埋め込みます。 |
not |
( x1 -- x2 ) |
invert の同義語。 |
or |
( x1 x2 -- x3 ) |
ビット単位の論理和。 |
rshift |
( x1 u -- x2 ) |
x1 を u ビット右シフトし、上位ビットにゼロを埋め込みます。 |
u2/ |
( x1 -- x2 ) |
1 ビット右へ論理シフトし、上位ビットにゼロをシフトします。 |
xor |
( x1 x2 -- x3 ) |
ビット単位排他的論理和。 |