diff options
Diffstat (limited to 'man/man1/dc.html')
-rw-r--r-- | man/man1/dc.html | 199 |
1 files changed, 199 insertions, 0 deletions
diff --git a/man/man1/dc.html b/man/man1/dc.html new file mode 100644 index 00000000..95b7fd24 --- /dev/null +++ b/man/man1/dc.html @@ -0,0 +1,199 @@ +<head> +<title>dc(1) - Plan 9 from User Space</title> +<meta content="text/html; charset=utf-8" http-equiv=Content-Type> +</head> +<body bgcolor=#ffffff> +<table border=0 cellpadding=0 cellspacing=0 width=100%> +<tr height=10><td> +<tr><td width=20><td> +<tr><td width=20><td><b>DC(1)</b><td align=right><b>DC(1)</b> +<tr><td width=20><td colspan=2> + <br> +<p><font size=+1><b>NAME </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + dc – desk calculator<br> + +</table> +<p><font size=+1><b>SYNOPSIS </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>dc</font></tt> [ <i>file</i> ]<br> + +</table> +<p><font size=+1><b>DESCRIPTION </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <i>Dc</i> is an arbitrary precision desk calculator. Ordinarily it operates + on decimal integers, but one may specify an input base, output + base, and a number of fractional digits to be maintained. The + overall structure of <i>dc</i> is a stacking (reverse Polish) calculator. + If an argument is given, input is taken from that file until its + end, then from the standard input. The following constructions + are recognized:<br> + number<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + The value of the number is pushed on the stack. A number is an + unbroken string of the digits <tt><font size=+1>0−9A−F</font></tt> or <tt><font size=+1>0−9a−f</font></tt>. A hexadecimal + number beginning with a lower case letter must be preceded by + a zero to distinguish it from the command associated with the + letter. It may be preceded by an underscore <tt><font size=+1>_</font></tt> to + input a negative number. Numbers may contain decimal points.<br> + + </table> + <tt><font size=+1>+ − / * % ^<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Add <tt><font size=+1>+</font></tt>, subtract <tt><font size=+1>−</font></tt>, multiply <tt><font size=+1>*</font></tt>, divide <tt><font size=+1>/</font></tt>, remainder <tt><font size=+1>%</font></tt>, or exponentiate + <tt><font size=+1>^</font></tt> the top two values on the stack. 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.<br> + + </table> + <tt><font size=+1>s</font></tt><i>x<br> + </i><tt><font size=+1>S</font></tt><i>x</i> Pop the top of the stack and store into a register named <i>x</i>, + where <i>x</i> may be any character. Under operation <tt><font size=+1>S</font></tt> register <i>x</i> is + treated as a stack and the value is pushed on it.<br> + <tt><font size=+1>l</font></tt><i>x<br> + </i><tt><font size=+1>L</font></tt><i>x</i> Push the value in register <i>x</i> onto the stack. The register <i>x</i> + is not altered. All registers start with zero value. Under operation + <tt><font size=+1>L</font></tt> register <i>x</i> is treated as a stack and its top value is popped + onto the main stack.<br> + <tt><font size=+1>d</font></tt> Duplicate the top value on the stack.<br> + <tt><font size=+1>p</font></tt> Print the top value on the stack. The top value remains unchanged. + <tt><font size=+1>P</font></tt> interprets the top of the stack as an text string, removes it, + and prints it.<br> + <tt><font size=+1>f</font></tt> Print the values on the stack.<br> + <tt><font size=+1>q<br> + Q</font></tt> Exit the program. If executing a string, the recursion level + is popped by two. Under operation <tt><font size=+1>Q</font></tt> the top value on the stack + is popped and the string execution level is popped by that value.<br> + <tt><font size=+1>x</font></tt> Treat the top element of the stack as a character string and + execute it as a string of <i>dc</i> commands.<br> + <tt><font size=+1>X</font></tt> Replace the number on the top of the stack with its scale factor.<br> + <tt><font size=+1>[ ... ]<br> + </font></tt> + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Put the bracketed text string on the top of the stack.<br> + + </table> + <tt><font size=+1><</font></tt><i>x<br> + </i><tt><font size=+1>></font></tt><i>x<br> + </i><tt><font size=+1>=</font></tt><i>x</i> Pop and compare the top two elements of the stack. Register + <i>x</i> is executed if they obey the stated relation.<br> + <tt><font size=+1>v</font></tt> Replace 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.<br> + <tt><font size=+1>!</font></tt> Interpret the rest of the line as a shell command.<br> + <tt><font size=+1>c</font></tt> Clear the stack.<br> + <tt><font size=+1>i</font></tt> The top value on the stack is popped and used as the number base + for further input.<br> + <tt><font size=+1>I</font></tt> Push the input base on the top of the stack.<br> + <tt><font size=+1>o</font></tt> The top value on the stack is popped and used as the number base + for further output. In bases larger than 10, each ‘digit’ prints + as a group of decimal digits.<br> + <tt><font size=+1>O</font></tt> Push the output base on the top of the stack.<br> + <tt><font size=+1>k</font></tt> Pop the top of the stack, and use that value as a non-negative + scale factor: the appropriate number of places are printed on + output, and maintained during multiplication, division, and exponentiation. + The interaction of scale factor, input base, and output base will + be reasonable if all are changed together. + <tt><font size=+1>z</font></tt> Push the stack level onto the stack.<br> + <tt><font size=+1>Z</font></tt> Replace the number on the top of the stack with its length.<br> + <tt><font size=+1>?</font></tt> A line of input is taken from the input source (usually the terminal) + and executed.<br> + <tt><font size=+1>; :</font></tt> Used by <i>bc</i> for array operations. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + The scale factor set by <tt><font size=+1>k</font></tt> determines how many digits are kept + to the right of the decimal point. If <i>s</i> is the current scale factor, + <i>sa</i> is the scale of the first operand, <i>sb</i> is the scale of the second, + and <i>b</i> is the (integer) second operand, results are truncated to + the following scales.<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>+</font></tt>,<tt><font size=+1>− </font></tt> max(<i>sa,sb</i>)<br> + <tt><font size=+1>* </font></tt> min(<i>sa</i>+<i>sb</i> , max(<i>s,sa,sb</i>))<br> + <tt><font size=+1>/ </font></tt><i> s<br> + </i><tt><font size=+1>% </font></tt> so that dividend = divisor*quotient + remainder; remainder has + sign of dividend<br> + <tt><font size=+1>^ </font></tt> min(<i>sa</i>×|<i>b</i>|, max(<i>s,sa</i>))<br> + <tt><font size=+1>v </font></tt> max(<i>s,sa</i>)<br> + + </table> + +</table> +<p><font size=+1><b>EXAMPLES </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + Print the first ten values of <i>n</i>!<br> + + <table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>[la1+dsa*pla10>y]sy<br> + 0sa1<br> + lyx<br> + </font></tt> + </table> + +</table> +<p><font size=+1><b>SOURCE </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <tt><font size=+1>/usr/local/plan9/src/cmd/dc.c<br> + </font></tt> +</table> +<p><font size=+1><b>SEE ALSO </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <a href="../man1/bc.html"><i>bc</i>(1)</a>, <a href="../man1/hoc.html"><i>hoc</i>(1)</a><br> + +</table> +<p><font size=+1><b>DIAGNOSTICS </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + <i>x</i> <tt><font size=+1>is unimplemented</font></tt>, where <i>x</i> is an octal number: an internal error.<br> + ‘Out of headers’ for too many numbers being kept around.<br> + ‘Nesting depth’ for too many levels of nested execution.<br> + +</table> +<p><font size=+1><b>BUGS </b></font><br> + +<table border=0 cellpadding=0 cellspacing=0><tr height=2><td><tr><td width=20><td> + + When the input base exceeds 16, there is no notation for digits + greater than <tt><font size=+1>F</font></tt>. + <table border=0 cellpadding=0 cellspacing=0><tr height=5><td></table> + + Past its time.<br> + +</table> + +<td width=20> +<tr height=20><td> +</table> +<!-- TRAILER --> +<table border=0 cellpadding=0 cellspacing=0 width=100%> +<tr height=15><td width=10><td><td width=10> +<tr><td><td> +<center> +<a href="../../"><img src="../../dist/spaceglenda100.png" alt="Space Glenda" border=1></a> +</center> +</table> +<!-- TRAILER --> +</body></html> |