目次
UNIX系で計算を行うときに使う計算言語です。 "An arbitrary precision calculator language"を和訳すると「任意精度計算言語」です。 bcは特に指定がなければ対話型モードで実行されます。 と入力してEnterを押すと と結果が返ってきます。 ※ 英語を全部訳すのは面倒なのでよく使うやつだけ見てみましょう。 実行時に最初に出てくるバージョン情報やcopyrightを非表示にしてくれます。 ibase, obaseというパラメータをいじると任意の基数での入力・出力が可能になります。 以下のようにリダイレクション 上記では、
bcとは
四則演算・対数関数・指数関数はもちろんのこと、変数を定義することで複雑な計算も可能です。 NAME
bc - An arbitrary precision calculator language
Macのターミナルでbc
と打ってEnterを押すと、ターミナル上でbcを使うことができます。$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
例えば、1+2
3
↓↓実際の使用例↓↓
scale=5
とすることで小数を5桁まで表示するように設定しています。(デフォルトではscale=0
)オプション
bc
は起動時にオプションを付けることができます。以下はman bc
でオプションを確認した結果です。OPTIONS
-h, --help
Print the usage and exit.
-i, --interactive
Force interactive mode.
-l, --mathlib
Define the standard math library.
-w, --warn
Give warnings for extensions to POSIX bc.
-s, --standard
Process exactly the POSIX bc language.
-q, --quiet
Do not print the normal GNU bc welcome.
-v, --version
Print the version number and copyright and quit.
-q, --quiet
bc="bc -q"
みたいなエイリアスを登録してもいいぐらいマストなオプションだと思います。-l, --mathlib
bc -l
で実行すると、三角関数(sin,cos,arctan)、自然対数(log)、指数関数(exp())が使えるようになります。
-l
をつけた場合、scale
が自動で20に設定されます。(=小数を20桁表示する)
基数計算
例えば、ibase=10, obase=16
とすると、10進数で入力した計算式を16進数で結果出力します。 (デフォルトではどちらも10なので10進数で表示される)ibase=10
obase=16
10+5
F
応用:非対話モードで実行
<<
を使って非対話モードでbcを実行することができます。$ bc <<EOF
> scale=3
> 4/3
> EOF
1.333
EOF
が入力されるまで式の入力を受け付けます。
あるいは、パイプ記号|
を使って以下のように書き換えることもできる。$ echo "scale=3; 4/3;" | bc
1.333
円周率を任意の桁まで求める
$ bc -lq
scale = 10;
(12*a(1/49)+32*a(1/57)-5*a(1/239)+12*a(1/110443))*4
3.1415926420
a()
はtanの逆関数arctanのことです。
scale
で指定した桁数分の円周率を表示します。参考
Macで電卓を使いたい時はターミナルからbcを使おう
スポンサーリンク