Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

dc(1)

名前

dc - desk calculator

形式

/usr/bin/dc [filename]
/usr/xpg6/bin/dc [filename]

説明

dc は、任意の精度の算術演算パッケージです。通常 dc は、10 進整数を処理しますが、入力の基数、出力の基数、および少数の桁数を指定することもできます。dc の全体構造は、スタック式 (逆ポーランド式) 計算機です。引数を指定すると、入力は指定したファイルから読み取られ、ファイルの終わりに致達すると標準入力から読み取られます。

bc は、中置記法と、機能を実装するための C 言語スタイルの構文を備えた、dc のプリプロセッサです。bc は、プログラムに対する合理的な制御構造も規定しています。詳細については、bc(1) を参照してください。

使用法

/usr/bin/dc, /usr/xpg6/bin/dc

次の構文は、/usr/bin/dc/usr/xpg6/bin/dc の両方で認識されます。

number

数値が、スタックにプッシュされます。数は、0 - 9 の数字からなる連続した文字列です。負の数を入力するには、下線 (_) を前に付けます。数値には、小数点が含まれる場合があります。

sx

スタックの先頭の値がポップされ、レジスタ x に格納されます。ここで x は任意の文字です。s を大文字にすると、x はスタックとみなされ、値はそこにプッシュされます。

lx

レジスタ x の値がスタックにプッシュされます。レジスタ x は変更されません。すべてのレジスタは、最初は 0 に設定されます。l を大文字にすると、レジスタ x はスタックとみなされ、その先頭の値がポップされ、メインスタックにプッシュされます。

d

スタックの先頭の値が複製されます。

p

スタックの先頭の値が出力されます。先頭の値はそのままです。

P

スタックの先頭の値を ASCII 文字列として解釈し、それをスタックから削除し、出力します。

f

スタック上のすべての値が出力されます。

q

プログラムを終了します。文字列を処理している場合、再帰レベルは 2 レベルだけポップします。

Q

プログラムを終了します。スタックの先頭の値がポップされ、文字列実行レベルはその値の分ポップします。

x

スタックの先頭要素を文字列とみなし、それを dc コマンドの文字列として実行します。

X

スタックの先頭の値をそのスケールファクタで置き換えます。

[ ... ]

角括弧で囲まれた ASCII 文字列をスタックの先頭に入れます。

<x >x =x

スタックの先頭の要素 2個がポップされ、比較されます。レジスタ x は、指定された関係が成立していれば評価されます。

v

スタックの先頭の要素をその平方根で置き換えます。引数に小数部分があるときは、それが考慮されますが、スケールファクタは無視されます。

!

残りの行をシェルコマンドとして解釈します。

c

スタック上のすべての値がポップされます。

i

スタックの先頭の値がポップされ、以後の入力の基数として使用されます。

I

入力の基数をスタックの先頭にプッシュします。

o

スタックの先頭の値がポップされ、以後の出力の基数として使用されます。

O

スタックの先頭に出力の基数をプッシュします。

k

スタックの先頭の値がポップされ、その値が負ではないスケールファクタとして使用されます。 出力の際には、適切な桁数の保持に、また乗算、除算、および累乗の際には、位置取りの保持に使用されます。スケールファクタ、入力の基数、および出力の基数の相互作用は、これらすべてを一度に変更した場合には妥当なものになります。

K

現在のスケールファクタをスタックの先頭にプッシュします。

z

スタックレベルをスタックにプッシュします。

Z

スタックの先頭の数をその長さで置き換えます。

?

入力行が入力ソース (通常は端末) から取られて実行されます。

Y

dc デバッグ情報を表示します。

; :

bc(1) が配列演算に使用します。

/usr/bin/dc

次の構文は、/usr/bin/dc で認識されます。どのような場合でも、結果のスケールが使用されます。

+ – / * % ^

スタックの先頭の 2 つの値が、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、剰余計算 (%)、または累乗 (^) されます。2 つの値は、スタックからポップされます。結果は、スタックのその場所にプッシュされます。指数の小数部分は無視されます。

/usr/xpg6/bin/dc

次の構文は、/usr/xpg6/bin/dc で認識されます。除算の結果には、20 のスケールが使用されます。

+ – / * % ^

スタックの先頭の 2 つの値が、加算 (+)、減算 (-)、乗算 (*)、除算 (/)、剰余計算 (%)、または累乗 (^) されます。2 つの値は、スタックからポップされます。結果は、スタックのその場所にプッシュされます。指数の小数部分は無視されます。

除算の前に設定されたスケールが結果のスケールになります。

使用例 1 n! の最初の 10 個の値を出力

この例では、n! の最初の 10 個の値を出力します:

[la1+dsa*pla10>y]sy
0sa1
lyx

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os

関連項目

bc(1), attributes(7)

診断

x is unimplemented

x は 8 進数です。

out of space

空きリストを使い果たしました (桁数が多すぎます)。

out of stack space

スタックへのプッシュが多すぎます (スタックのオーバーフロー)。

empty stack

スタックからのポップが多すぎます (スタックのアンダーフロー)。

nesting depth

ネストが深すぎます。

divide by 0

0 による除算です。

sqrt of neg number

負の数の平方根は定義されていません (虚数は扱えません)。

exp not an integer

dc は整数の累乗だけを処理します。

exp too big

最大許容指数は 999 です。

input base is too large

入力の基数 x: 2<= x <= 16。

input base is too small

入力の基数 x: 2<= x <= 16。

output base is too large

出力の基数は、BC_BASE_MAX 以下でなければなりません。

invalid scale factor

スケールファクタは 1 以上でなければなりません。

scale factor is too large

スケールファクタは BC_SCALE_MAX 以下でなければなりません。

symbol table overflow

指定された変数が多すぎます。

invalid index

インデックスは 1 以上でなければなりません。

index is too large

インデックスは、BC_DIM_MAX 以下でなければなりません。