Dc (UNIX)
dc におけるレジスタは、マクロや条件式の基本となる仕組みである。それぞれのレジスタは 1 文字の名前を持っている。レジスタを利用して値を保存したりスタックに取り出したりすることができる。sc コマンドはスタックからポップした要素をレジスタ c に保存する。lc コマンドは c レジスタの値をスタックにプッシュする。以下に示すのはレジスタを利用する例である:
レジスタをスタックとして利用することもできる。メインのスタックとレジスタのスタックとの間でプッシュ・ポップするには S・L コマンドを利用する。
? コマンドを利用して標準入力を 1 行読み込むことができる。このコマンドは入力された行を dc コマンドとして評価する。そのため、入力は dc コマンドとして正しい構文である必要があるほか、! コマンドを利用して任意のユーザコマンドを実行できるため、セキュリティ上の問題が発生する恐れすらある。
前述したとおり、p コマンドはスタックの先頭の要素を表示して改行する。n コマンドはスタックからポップした値を改行を伴わずに表示する。f コマンドはスタックの内容を先頭から順にすべて表示する。
dc はまた、入力と出力に利用する基数を任意に設定できる。i コマンドは入力時の基数としてスタックをポップした値を設定する。dc コマンドとの衝突を避けるため、利用できる基数は 2 から 16 に限られ、基数に 10 以上を指定する場合は A から F の大文字を数として利用する (小文字は利用できない)。同様に o コマンドは出力時の基数としてスタックからポップした値を設定する。また、現在の精度・入力基数・出力基数を得るためには、K・I・O コマンドを利用する。これらは現在の値をスタックにプッシュする。
以下に示すのは 16 進数の入力を 2 進数に変換する例である: