dc コマンド

目的

任意精度の整数の算術演算を実行するための対話式卓上計算機を提供します。

構文

dc [ File]

説明

dc コマンドは、任意精度の算術演算を実行する計算機です。dc コマンドは、ファイル終わり文字を読み取るまで、File パラメーターまたは標準入力から入力を取り込んで、 標準出力に出力します。 dc コマンドは入力を受信すると、その値を評価して、評価を標準出力に書き込みます。このコマンドは 10 進整数について演算を実行しますが、入力基数、出力基数、 および保持される小数桁の数を指定できます。dc コマンドは、 スタックされた逆ポーランド表記法を用いる計算機として構成されています。

bc コマンドは、 dc コマンドのプリプロセッサーです。 表記法は挿入表記で、 構文はプログラムに対して関数および制御構造を使用する C 言語に類似しています。

サブコマンド

項目 説明
c スタックをクリアします。dc コマンドは、スタックのすべての値をポップします。
d スタックの一番上の値の複製を作成します。
f スタックのすべての値を表示します。
i スタックの一番上の値をポップして、さらに入力するために、その値をその数の基数として使用します。
I 入力基数をスタックの一番上にプッシュします。
k スタックの一番上をポップして、その値を非負スケール・ファクターとして使用します。 適切な桁数の数値が出力時に表示されて、乗算、除算、べき乗の間、保持されます。スケール・ファクター、 入力基数、および出力基数は、すべてが一緒に変更される場合は妥当です。
lx x 変数が示しているレジスター内の値をスタックにプッシュします。x 変数が示すレジスターは変更されません。レジスターはすべて、0 という値で始まります。
Lx x 変数をスタックとして扱い、その一番上の値をメイン・スタックにポップします。
o スタックの一番上の値をポップし、以降の出力のために、その値を基数として使用します。
O 出力基数をスタックの一番上にプッシュします。
p スタックの一番上の値を表示します。一番上の値は、変更されません。
P スタックの一番上を文字列として解釈して、それを除去し、表示します。
q プログラムを終了します。dc コマンドが文字列を実行中の場合は、 再帰レベルを 2 レベルだけポップします。
Q スタックおよび文字列実行レベルの一番上の値を、その値分だけポップします。
sx スタックの一番上をポップして、それを x という名前のレジスターに格納します。 この x 変数は文字でもかまいません。
Sx x 変数をスタックとして扱います。メイン・スタックの一番上をポップして、 x 変数が示すスタックにその値をプッシュします。
v スタックの一番上のエレメントを、その平方根と置き換えます。 オプションに小数部分があれば、それは平方根に反映されますが、そうでない場合は、 スケール・ファクターは無視されます。
x スタックの一番上のエレメントを文字列と見なし、 それを dc コマンドの文字列として実行します。
X スタックの一番上にある番号を、そのスケール・ファクターと置き換えます。
z スタック内のエレメントの数をスタックにプッシュします。
Z スタックの一番上の数字を、その数字の桁数と置き換えます。
Number 指定した値をスタックにプッシュします。 Number は、0 から 9 桁の連続した文字列です。負の数を指定するには、前に _ (下線) を付けます。 数字には小数点を入れることができます。
+ - / * % ^ スタック上の最初の 2 つの値の加算 (+)、減算 (-)、乗算 (*)、除算 (/)、剰余計算 (%)、 またはべき乗 (^) を実行します。 dc コマンドは、最初の 2 つの入力をスタックからポップして、 それらの代わりに結果をスタックにプッシュします。 dc コマンドは、指数の小数部分を無視します。
[String] 大括弧で囲まれた String パラメーターを、スタックの一番上に取り込みます。
[= | > | <] x               スタックの最初の 2 つのエレメントをポップして、それらを比較します。宣言された関係に従って、x 変数が示すレジスターを評価します。
! 行の残りの部分をオペレーティング・システムのコマンドとして解釈します。
? 1 行の入力を取り込んで実行します。
;: bc コマンドは、 配列操作でこれらの文字を使用します。

  1. dc コマンドを計算機として使用するには、次のコマンドを入力します。
    You:    1 4 / p
    System: 0
    You:    1 k   [ Keep 1 decimal place ]s.
            1 4 / p
    System: 0.2
    You:    3 k   [ Keep 3 decimal places ]s.
            1 4 / p
    System: 0.250
    You:    16 63 5 / + p
    System: 28.600
    You:    16 63 5 + / p
    System: 0.235
    例に示すように、dc コマンドの中でコメントを使用できます。コメントは大括弧で囲み、直後に s. 文字を続けることができます。[Comment]s. の形式のコメントは、dc コマンドによって無視されます。大括弧で囲まれたコメントだけが、スタックの上部に格納されます。

    キーボードから直接 dc コマンドを入力する場合は、Ctrl-D を押して bc コマンド・セッションを終了し、シェル・コマンド・ラインに戻ります。

  2. dc プログラム・ファイルをロードして実行するには、次のコマンドを入力します。
    You:    dc prog.dc
            5 lf x p [ 5 factorial ]s.
    System: 120
    You:    10 lf x p [ 10 factorial ]s.
    System: 3628800
    この入力は、prog.c プログラム・ファイルに保存された dc プログラムを解釈して、 ワークステーションのキーボードから読み取りを行います。lf x は、レジスター f に格納されている関数を評価します。このレジスターは、prog.c プログラム・ファイルで次のように定義することができます。
    [ f: compute the factorial of n ]s.
    [ (n = the top of the stack) ]s.
    [ If 1>n do b; If 1<n do r ]s.
     [d 1 >b d 1 <r] sf
    [ Return f(n) = 1 ]s.
     [d - 1 +] sb
    [ Return f(n) = n * f(n-1) ]s.
     [d 1 - lf x *] sr
    dc プログラム・ファイルは、 任意のテキスト・エディターまたは bc コマンドの -c (コンパイル) フラグを付けることによって作成できます。 キーボードから直接 dc コマンドを入力する場合は、 Ctrl-D を押して bc コマンド・セッションを終了し、 シェル・コマンド・ラインに戻ります。

ファイル

項目 説明
/usr/bin/dc dc コマンドが入っています。