dc man page on DigitalUNIX

Printed from http://www.polarhome.com/service/man/?qf=dc&af=0&tf=2&of=DigitalUNIX

dc(1)									 dc(1)

NAME
       dc  -  Provides	an interactive desk calculator for arbitrary precision
       integer arithmetic

SYNOPSIS
       dc

DESCRIPTION
       The dc command is an arbitrary precision arithmetic calculator.	The dc
       command	takes  its input from file or standard input until it reads an
       End-of-File character.  It writes to standard output.  The  dc  command
       operates	 on  integers  by  default, but you can specify an input base,
       output base, and a number of fractional digits to be  maintained.   The
       dc command is structured overall as a stacking, reverse Polish calcula‐
       tor.

       The bc command is a preprocessor for dc.	 It  provides  infix  notation
       and  a syntax similar to the C language, which implements functions and
       reasonable control structures for programs.

SUBCOMMANDS
       Pushes the specified value onto	the  stack.   number  is  an  unbroken
       string  of the digits 0 to 9.  To specify a negative number, precede it
       with _ (underscore).  A number can contain a decimal point.  Adds  (+),
       subtracts (-), multiplies (*), divides (/), remainders (%), or exponen‐
       tiates (^) the top two values on the stack.  The dc  command  pops  the
       top  two	 entries  off  the stack and pushes the result on the stack in
       their place.  Interprets the rest of the	 line  as  a  system  command.
       Executes	 a  line  of  input from standard input.  Cleans the stack: dc
       pops all values on the stack.  Duplicates the top value on  the	stack.
       Displays	 all values on the stack.  Pops the top value on the stack and
       uses that value as the number radix  for	 further  input.   Pushes  the
       input  base  on	the  top of the stack.	Pops the top of the stack, and
       uses that value as a nonnegative scale factor.  The appropriate	number
       of  places  is displayed on output and is maintained during multiplica‐
       tion, division, and exponentiation. The interaction  of	scale  factor,
       input  base, and output base is reasonable if all are changed together.
       Pushes the value in register x on the stack.  The  register  x  is  not
       changed.	 All registers start with zero value.  Treats x as a stack and
       pops its top value onto the main stack.	Pops  the  top	value  on  the
       stack  and  uses	 that  value  as  the number radix for further output.
       Pushes the output base on the top of the stack.	Prints the  top	 value
       on  the	stack.	 The  top value remains unchanged.  Interprets the top
       value on the stack as an ASCII  string,	prints	it,  and  removes  it.
       Exits  the program.  If dc is executing a string, it pops the recursion
       level by two.  Pops the top  value on the stack and the	string	execu‐
       tion level by that value.  Pops the top of the stack and stores it in a
       register named x, where x can be any single-byte	 character.   Replaces
       the  top	 element  on the stack by its square root.  Any existing frac‐
       tional part of the argument is taken into account,  but	otherwise  the
       scale  factor is ignored.  Treats x as a stack.	It pops the top of the
       main stack and pushes that value onto stack x.  Treats the top  element
       of  the	stack  as a character string and executes it as a string of dc
       commands.  Replaces the number on the top of the stack with  its	 scale
       factor.	 Pushes	 the  number  of elements in the stack onto the stack.
       Replaces the top number in the stack with the number of digits in  that
       number.	Puts the bracketed string onto the top of the stack.  Pops the
       top two elements of the stack and compares them.	 Register  x  is  exe‐
       cuted if the stated relationship is TRUE.  dc uses these characters for
       array operations.

EXAMPLES
       To use dc as a calculator proceed as follows:

	      Enter: 1 4 / p	    [Divide 1 by 4]s.

	      The system responds as follows: 0

	      Enter: 1 k  [ Keep 1 decimal place]s.  1 4 / p

	      The system responds as follows: 0.2

	      Enter: 3 k  [ Keep 3 decimal places]s.  1 4 / p

	      The system responds as follows: 0.250

	      Enter: 16 63 5 / + p  [Divide 63 by 5, add the result to 16]s.

	      The system responds as follows: 28.600

	      Enter: 16 63 5 + / p  [Add 63 and 5, divide the result by 16]s.

	      The system responds as follows: 0.235

	      You can type the comments (enclosed in brackets), but  they  are
	      provided only for your information.

	      When  you enter dc expressions directly from the keyboard, press
	      the End-of-File key sequence to end the dc session and return to
	      the shell command line.  To load and run a dc program file, pro‐
	      ceed as follows:

	      Enter: dc prog.dc 5 lf x p  [  5 factorial ]s.

	      The system responds as follows: 120

	      Enter: 10 lf x p	[ 10 factorial ]s.

	      The system responds as follows: 3628800

	      This interprets the dc program saved in prog.dc, then reads from
	      standard input. The lf x evaluates the function stored in regis‐
	      ter f, which could be defined in the program file prog.dc as:

	      [ f: compute the factorial of n ]s.

	      [	   (n = the top of the stack) ]s.

	      [ If 1>n do b;  If 1<n do r ]s.	    [d 1 >b d 1 <r] sf

	      [ Return f(n) = 1	  ]s.	    [d - 1 +] sb

	      [ Return f(n) = n * f(n-1)  ]s.	    [d 1 - lf x *] sr

       You can create dc program files with a text  editor,  or	 with  the  -c
       (compile)  flag	of  the	 bc  command.  When  you  enter dc expressions
       directly from the keyboard, press the End-of-File key sequence  to  end
       the dc session and return to the shell command line.

SEE ALSO
       Commands:  bc(1)

									 dc(1)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net