*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> dc (1)              
Title
Content
Arch
Section
 

dc(1)

Contents


NAME    [Toc]    [Back]

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

SYNOPSIS    [Toc]    [Back]

       dc

DESCRIPTION    [Toc]    [Back]

       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 calculator.

       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    [Toc]    [Back]

       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  exponentiates
       (^)  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  multiplication,
       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 execution 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 fractional
       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  executed  if the stated relationship is TRUE.  dc uses
       these characters for array operations.

EXAMPLES    [Toc]    [Back]

       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,  proceed
              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 register 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    [Toc]    [Back]

      
      
       Commands:  bc(1)



                                                            dc(1)
[ Back ]
 Similar pages
Name OS Title
bc OpenBSD arbitrary-precision arithmetic language and calculator
dc FreeBSD an arbitrary precision calculator
dc IRIX an arbitrary precision calculator
bc FreeBSD An arbitrary precision calculator language
bc IRIX An arbitrary precision calculator language
bc HP-UX arbitrary-precision arithmetic language
bc Tru64 Provides a processor for arbitrary-precision arithmetic language
dc HP-UX desk calculator
dc OpenBSD desk calculator
m_out Tru64 Perform multiple precision integer arithmetic
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service