HP-UX Reference (11i v1 05/09) - 1 User Commands A-M (vol 1)

d
dc(1) dc(1)
NAME
dc - desk calculator
SYNOPSIS
dc [file ]
DESCRIPTION
dc is an arbitrary precision arithmetic package. Ordinarily it operates on decimal integers, but one may
specify an input base, output base, and a number of fractional digits to be maintained. (See bc(1), a prepro-
cessor for
dc that provides infix notation and a C-like syntax that implements functions.
bc also pro-
vides reasonable control structures for programs.) The overall structure of
dc is a stacking (reverse Pol-
ish) calculator. If an argument is given, input is taken from that file until its end, then from the standard
input. An end of file on standard input or the
q command stop dc. The following constructions are recog-
nized:
number The value of the number is pushed on the stack. A number is an unbroken string of
the digits
0-9 or A
-F. It can be preceded by an underscore (_) to input a negative
number. Numbers can contain decimal points.
+-/*%ˆ
The top two values on the stack are added (+), subtracted (-), multiplied (
*), divided
(
/), remaindered (%), or exponentiated (
ˆ). The two entries are popped off the stack;
the result is pushed on the stack in their place. Any fractional part of an exponent is
ignored and a warning generated. The remainder is calculated according to the
current scale factor; it is not the integer modulus function.
7%3yields .1 (one
tenth) if scale is 1 because 7/3is 2.3 with .1 as the remainder.
sx The top of the stack is popped and stored into a register named x, where x can be any
character. If the
s is capitalized, x is treated as a stack and the value is pushed on it.
lx The value in register x is pushed on the stack. Register x is not altered. All registers
start with zero value. If the l is capitalized, register x is treated as a stack and its
top value is popped onto the main stack.
d The top value on the stack is duplicated.
p The top value on the stack is printed. The top value remains unchanged. P inter-
prets the top of the stack as an
ASCII string, removes it, and prints it.
f All values on the stack are printed.
q exits the program. If executing a string, the recursion level is popped by two. If q
is
capitalized, the top value on the stack is popped and the string execution level is
popped by that value.
x treats the top element of the stack as a character string and executes it as a string of
dc commands.
X replaces the number on the top of the stack with its scale factor.
[ ... ] puts the bracketed ASCII string onto the top of the stack. Strings can be nested by
using nested pairs of brackets.
<x >x =x
!<x !>x !=x
The top two elements of the stack are popped and compared. Register x is evaluated
if they obey the stated relation.
v Replaces the top element on the stack by its square root. Any existing fractional part
of the argument is taken into account, but otherwise the scale factor is ignored.
! Interprets the rest of the line as an HP-UX system command (unless the next charac-
ter is <, >,or=, in which case appropriate relational operator above is used).
c All values on the stack are popped.
i The top value on the stack is popped and used as the number radix for further input.
I pushes the input base on the top of the stack.
Section 1170 Hewlett-Packard Company 1 HP-UX 11i Version 1: September 2005