bc の文法はC言語とよく似ているので、Cで書かれたアルゴリズムは容易に bc に翻訳可能であり、それによって bc の任意精度の恩恵を受けることができる。例えば、Journal of Statistical Software (July 2004, Volume 11, Issue 5) には、George Marsaglia の論文に累積正規分布に関する次のC言語コードが掲載されていた。double Phi(double x){    long double s=x,t=0,b=x,q=x*x,i=1;    while(s!=t)        s=(t=s)+(b*=q/(i+=2));    return .5+s*exp(-.5*q-.91893853320467274178L);}これは簡単にGNU bc用に書き換えることができ、次のようになる。define normal(x)  {     auto s,t,b,q,i,const;     const=0.5*l(8*a(1));     s=x;     t=0;     b=x;     q=x*x;     i=1;     while(s!=t) {s=(t=s)+(b*=q/(i+=2))};     return .5+s*e(-.5*q-const);  }
（「高野の公式」を参照）$ bc -l -qscale = 10000;(12*a(1/49)+32*a(1/57)-5*a(1/239)+12*a(1/110443))*4
# 数の整数部分を返す関数define int(number) {   auto oldscale   oldscale = scale   scale = 0   number /= 1 /* 丸める */   scale = oldscale   return number}# number^exponent == e^(exponent*log(number)) という性質を利用define power(number,exponent) {   if (exponent == int(exponent)) {      return number ^ exponent    } else {      return e( exponent * l(number) )   }}
/* x の整数部分を返す関数 */define i(x) {   auto s   s = scale   scale = 0    x /= 1   /* x を丸める */   scale = s   return (x)}/* x^y == e^(y*log(x)) という性質を使う */define p(x,y) {   if (y == i(y)) {      return (x ^ y)   }   return ( e( y * l(x) ) )}
bcの ^ 演算子はべき指数が整数でないと機能しない。bcの利用者がまず書こうとする関数の1つとして、浮動小数点数のべき指数を扱えるべき乗関数が考えられる。次の2つのコード例は、-l オプションによる数学関数を使うことを前提としている。
GNU版では数々の拡張を加えられている。また、dcのフロントエンドではなく、独立したプロセスとして動作する実装である。しかし、標準とは互換性を保っており、標準bc用プログラムは修正なしでGNU版でも実行できる。変数、配列、関数の名前は1文字に制限されない。また、C言語の演算子もさらに導入されていて、特にif文にはelse節を書くことができる。出力は、標準と同様に計算結果を変数に代入しないときにも表示されるし、print 文で表示させることもできる。さらに、read 文でプログラムに対話的に数値を入力することもできる。C言語風のコメント以外に、# から行末までをコメントとして扱う。直近の計算結果は常に組み込み変数 last に格納されている。
-l オプションで追加される数学関数には、三角関数（正弦、余弦、逆正接）、自然対数、指数関数、2引数のベッセル関数 J が含まれる。ほとんどの標準的関数（逆正弦関数や逆余弦関数など）は、これらを使って構築できる。他の関数の実装については、外部リンクを参照。なお、-l オプションでは、それと同時に、scaleが20に設定される。そのため剰余演算が思わぬ結果を返すことがある。例えば、"bc -l" として、"print 3%2" と入力すると、1ではなく0と出力する。しかし、"bc -l" で起動した後で "scale=0" とすれば、"print 3%2" は1を出力する。
bc（ビーシー）は、Unixで広く使われている、中置記法の算術式を計算する任意精度演算プログラムおよびその入力言語である。式はコマンドライン引数として与えることもできるし、標準入力などから与えることもできる。例えば、(1 + 3) * 2 を入力すれば 8 と出力する。POSIXで標準化されているが、これを大幅に拡張したGNU版の実装もある。Plan 9版は、標準のスーパーセットでGNU版のサブセットになっている。そのほか、オリジナルのUNIX版の実装や、OpenBSDプロジェクトで実装されたもの（他にFreeBSDなどで使われている）が主要な実装である。Windows用などのバイナリが配布されているものもある。
小型の舟で海を行くヒューイ、デューイ、ルーイと、特製の衣装・帽子がお気に入りのドナルド船長。立派な本船に乗り換え甥っ子たちが敬礼する前でどっしり歩くドナルドの頭上にカモメのうるさい鳴き声が響き、いつものように頭に血が上りそうになるドナルドだったが、お気に入りの特製帽子を傷つけるのをためらいドナルドは心を静める。船を出発させようとドナルド船長は甥っ子たちに碇を上げるよう命じる。甥っ子たちは3人で碇を上げようとするが、なぜか途中で引っかかってしまいなかなか碇を上げることができない。海底の岩に碇が引っかかってしまったのだ。そのことに気付かない船長ドナルドは甥っ子たちに代わり自分で碇を上げようとするが、再び岩に引っかかる。怒ったドナルドは碇が引っかかったまま力任せに碇の鎖を巻き上げ、船の片側を海に沈めてしまった。ようやく戻ったが帆が倒れてしまい、またまた怒るドナルド。出航させることにしたが、ロープが桟橋に引っかかっており、帆ごと飛んで行ってしまう。3人のおかげで帽子を取り戻したが、ドナルドの怒りは最高潮に達しており、海上でのサメとの決闘が始まる。 戻ってきたドナルドは海に落ちてしまった船長の帽子をサメから取り戻そうと奮闘する。サメに顔面パンチを食らわせたドナルドは甥っ子たちと街へ戻った。