dc
bc
電卓とは何が違いますか?
いつ使用しdc
、いつ使用するべきですかbc
?
答え1
dc
bc
.citeよりも非常に古いツールです。ウィキペディアページ:
これは、Cプログラミング言語が発明される以前の最も古いUnixユーティリティの1つです。その時代の他のユーティリティと同様に、強力な機能セットを持っていますが、非常に簡潔な構文を持っています。
構文は逆ポーランドの表記法で、デフォルトではパラメータ(数字など)が最初に続き、その後に演算子が続きます。基本的な使用例はdc
次のとおりです。
echo '3 4 * p' | dc
計算p
結果を印刷する必要があります。bc
一方、より親しみやすい中位表記法が使用されるため、使用する方が直感的です。使用例は次のとおりですbc
。
echo '3 * 4' | bc
どちらを使用しますか?
bc
POSIXによって標準化されているので、おそらくどちらの移植性も良いでしょう(少なくとも最新のシステムでは)。手動電卓を使用している場合、これは確かに良い方法です(少しマゾヒストではない限り)。dc
それでもその用途がありますが、この場合は逆ポーランド表記が便利です。合計を求める数値ストリームを出力するプログラムがあるとします。たとえば、次のようになります。
23
7
90
74
29
次のようにストリームにaを追加するだけで済みますので、これを行うのは非常に簡単ですdc
(最小の現代の実装では、各演算子は2つ以上の数を受け入れることができます)。+p
{ gen_nums; echo +p } | dc
しかし、bc
もっと複雑です。私たちはただ+
〜サイ各番号を確認し、すべてが同じ行にあることを確認し、最後に改行文字があることを確認してください。
{ gen_nums | sed '$ !s/$/+/' | tr -d '\n'; echo; } | bc
答え2
答え3
dc
電卓ではbc
なく、実際の言語です。該当するマニュアルページを参照してください。
紀元前dc は、無限精度計算をサポートする逆ポーランドのデスクトップ計算機です。マクロを定義して呼び出すこともできます。通常、DCは標準入力から読み取られます。コマンド引数が与えられると、これはファイル名であり、dcは標準入力から読み取る前にファイルの内容を読み込み、実行します。すべての通常出力は標準出力で、すべてのエラー出力は標準エラーです。
bc は、任意の精度の数値をサポートし、対話式にステートメントを実行する言語です。構文はCプログラミング言語といくつか似ています。標準の数学ライブラリはコマンドラインオプションで利用できます。必要に応じて、ファイルを処理する前に数学ライブラリを定義できます。 bcは最初に、コマンドラインにリストされているすべてのファイルのコードをリストされた順序で処理します。すべてのファイルが処理された後、bcは標準入力から読み取られます。すべてのコードは読み取り時に実行されます。 (ファイルにプロセッサを停止する命令が含まれている場合、bcは標準入力から読み込まれません。)
それは実際に数学的に最終的に何をしたいのかによって異なります。特定の操作が機能しませんdc
。私は長年にわたって他のいくつかのコマンドライン電卓ツールに加えて、これら2つのツールを使用してきました。望むより」コマンドライン表現ソルバー?「いくつかの追加例です。
答え4
私の考えでは、できるだけ短く言うと、GNU dcは3つの点でGNU bcとは異なります。
1)bcの数学ライブラリに興味がない場合は、初等演算を行うときにキーストロークを最大限に節約し(Jan Łukasiewiczの言葉によると、括弧なし)、必須事項に集中し、注意が気を散らすことを避けてください。
2)Microsoft Windows 7のコマンドラインでは、GNU dcはGNU bc(〜360K)より少ないメモリ(〜320K)を消費します。
3) GNU dc の制御粒度は GNU bc の制御粒度より大きい。たとえば、GNU bc にはスタックコマンドとレジスタコマンドはありません。
win32のバージョン1.07.1は次の場所にあります。https://embedeo.org/ws/command_line/bc_dc_calculator_windows/