Home > pcalc

pcalc

Pcalc is a project mainly written in ..., based on the GPL-2.0 license.

http://pcalc.sourceforge.net/ - but with a really small patch so it compiles on OSX.

                            PCALC

Programmer's calculator, command line utility.

There was always a loophole when it came to a need to covert between hexadecimal / decimal / octal / binary.

Especially if it involved an operation like 0x1234 + 0x20 It took a lot of hard work, and mostly a good pocket calculator.

Main features:

 o Full math parser, paranthases, add, sub, mult, div, exponential
 o Automatic conversion between HEX DEC OCT BIN numbers
 o Mixing different bases in one expression
 o Definable variables
 o Math constants (E PI ...)
 o Built in math functions (sin/cos/sqrt ...)

Specification:

Number specification:

0x1234              hexadecimal
0c1234              octal
0y0101              binary
123456              decimal

Built in functions:

sin             mathematical sinus
cos             mathematical cos
atan            mathematical atan
log             mathematical log
log10           mathematical log10
exp             mathematical exp
sqrt            mathematical sqrt
int             mathematical int
abs             mathematical abs
f2c             converting temperature-> fahrenheit to celsius
c2f             converting temperature-> celsius to fahrenheit
in2mm           converting length-> inches to millimeter
mm2in           converting length-> millimeter to inches
po2kg           converting mass-> pounds to kilogram
kg2po           converting mass-> kilogram to pounds

Built in controls:

echo            echo to the screen

_echo echo to the screen, no new line date echo to the screen, expanding date variables store store vaiable to file restore restore vaiable from file

Built in variables:

DEBUG           for debug 0=off 1=on
DEC             controling number display 0=default 1=dec 2=hex 3=bin

Operator priorities:

 LOW    '='         assignment
        or          binary or
        and         binary and
        '>' '<'     binary left/right shift
        '+' '-'     addition/subtruction
        '*' '/' '%' multiply/divide/modulus
        '-'         unary minus
 HIGH   '^'         exponentation

Syntax:

pcalc  var
pcalc  expr
pcalc  number
pcalc  var = number
pcalc  builtin expr
pcalc  builtin ( expr )
pcalc  date "string"
pcalc  echo "string"
pcalc  _echo "string"
pcalc  store    var
pcalc  store    var to  "file"
pcalc  restore  var
pcalc  restore  var from "file"

The result is output in 3 parts:

DEC number       HEX number      BIN number

  20              0x14            0y10100

If the number is out of range from the HEX and BIN numbers, the truncated numbers are displayed.

Examples:

(see also the ./ptest directory)

c:>pcalc 0x300

 768         0x300       0y1100000000

c:>pcalc '0x300 + 3 * 3'

 777             0x309           0y1100001001

Note: shell expansion on the '*' char required the single quote


c:>pcalc sqrt 2

 1.4142136   0x1         0y1

c:>pcalc sqrt(2)

1.4142136   0x1         0y1

c:>pcalc 0x12 or 23

23          0x17        0y10111

To execute a calculation script from a file, precede the file name with the character '@'.

Example:

pcalc @pcalc.001

Dirty:

This project was constructed in a 'quick and dirty' scedule, please forgive missing parts etc ...

Feedback:

Please send email about updates/ports/suggestions to

[email protected]

Previous:pomodoro_timer