For many years, this program was a one-liner to call perl, until support for binary, octal, decimal and hexadecimal conversion and the help text with examples were added.
Small, simple command line based calculator with history (provided
by bash), complex expression evaluation (provided by perl)
and optional bin/oct/dec/hex formatting (provided by perl).
calc [ bin | oct | dec | hex ] EXPRESSION
1 Precision is higher if no (bin/oct/dec/hex) formatting is used.
Also, formatting implies non-fractional output.
2 The 'x' character is an alternative for '*' (asterisk)
to do a multiplication. The advantage over using '*' is that
no escaping is required in a shell like 'bash'
- Note that escaping parentheses '(' and ')' will be still
3 The Perl interpreter is used to do actual calculation,
available operators are described in 'man perlop'.
Normal calculation: quoting is used to avoid interpretation
of parentheses by the shell:
$ calc '(2.4 + 1) x 3'
10.2 = (2.4 + 1) * 3
Add decimal 3 and hexadecimal 0x10 and octal 010 and binary 0b10,
and output result in binary format:
$ calc bin 3 + 0x10 + 010 + 0b10
0b11101 = 3 + 0x10 + 010 + 0b10
All in decimals this is:
$ calc dec 3 + 16 + 8 + 2
29 = 3 + 16 + 8 + 2
Note the difference between with or without formatting argument:
$ calc dec 12345678 x 12.12
149629617 = 12345678 * 12.12
$ calc 12345678 x 12.12
149629617.36 = 12345678 * 12.12
$ calc hex 65535
0xffff = 65535
$ calc dec 0xffff
65535 = 0xffff
- bash (version 3.1.16(1) used for testing, but any should work)
- perl (version v5.8.8 used for testing, but any >=5 should work)
- expr, man expr (may help out if 'perl' is not available)
- GUI-based calculators: xcalc, kcalc (just to name a few)
- other command line based calculators
- Gentoo-Linux category sci-calculators
License: The code is in the public domain.There is no warranty, and no liability is assumed.
- calc 0.04.0001 [2007-03-30] (MD5: 9c68a60301e073dcec93c9532bd88f56)