The Designer's Guide Community

Designer's Guide Community Calculator

CalculatorThe Designer's Guide Community Calculator is an RPN calculator designed for electrical engineers engaged in the design of electronic circuits. As such, it provides operations and constants useful to circuit designers. However, it also has several unique features that serve to distinguish it from other scientific calculators available on the web:

  1. Efficient command line entry.
  2. Entry and display of numbers with SI scale factors.
  3. Entry and display of integers in base 2, 8, 10, and 16 using Verilog format.
  4. Multistep undo.
  5. Compatibility with your computer's clipboard feature.
  6. Observable memories.

Return to calculator

Basic Operation

RPN calculators use a stack for their calculations. The stack consists of 4 registers, x, y, z, and t, the contents of each is visible. Generally operations are performed on the contents of the x register, perhaps along with the contents of the y register, and saved in the x register. The z and t registers are used for temporary storage.

Example: 4 × 8
Enter 4 into the cmd field and use either the enter key (on the keyboard) or enter ↑ button (in the calculator) to store it into the x register.
Enter 8 into the cmd field and use either the enter key or enter ↑ to store it into the x register. Notice that this pushes 4 to the y register. Anything in the other registers would likewise be pushed up except for the contents of the t register, which is lost.
Now either enter a * into the cmd window and type enter on the keyboard or press enter ↑, or press the × button. This multiplies the contents of the x and y registers and places the result in the x register. The contents of the z and t registers are popped down and 0 is loaded into t.

Example: (4 × 8) + (3 × 5)
The product of 4 and 8 should already be in the x register from the last example.
Enter 3 and then enter 5. At this point 32 should be in the z register, 3 should be in the y register, and 5 should be in the x register.
Press the × to compute the product of 3 and 5. Now 32 will be in the y register and 15 in the x register.
Press the + to compute the sum.

It is possible to enter multiple commands in the cmd window. For example, the first example calculation could have been preformed by entering
4 8 *
into the command window and then type enter, or by entering
4 8
into the command window and pressing ×. It is possible to mix the use of the command line and the buttons. Activating a button causes the command line to be executed before the action associated with the button occurs.

Select operators can be entered without preceding them with a space if they follow a number or a constant. So the second example could be entered on one line with
4 8* 3 5* +

You copy numbers from the x register to and from the various memory registers using the small and buttons provided inside the memory register.

Hit the back button on your browser if you make a mistake.

Return to calculator

Entering and Displaying Numbers

Real numbers are accepted in several different forms. For example, consider 1.3 × 10-6. It can be entered as:

In the last example, the SI scale factor u is used to multiply the number given by 10-6. A complete list of all of the scale factors accepted for input is shown in the table on the right.

You may choose the manner in which real numbers are displayed. Again, 1.3 × 10-6 is used as example to illustrate the various choices. You can also choose how many digits should be displayed. In these examples, the choice of digits is set to 2.

ENG 1.26μ For most situations this is simplest and easiest to interpret format.
FIX 0.00 Useful when working with currency.
FLT 1.26e-6 Useful when using the clipboard to copy results to another application.
SCI 1.26 × 10-6 Pleasing to traditionalists.

Example: 2 cos(2π 1MHz 125ns)
This example uses a trig function, and so it is important to assure the trig mode is set appropriately. To do so, type 'rads' and hit the enter key or use the mouse to select RADS from the trigonometry mode field.

Now click on , enter 1M, click on ×, enter 125n, click on × again, then cos, enter 2, and finally click on ×.

Alternatively, you can use only the keyboard with
rads 2pi 1M* 125n* cos 2*

The result should be √2 or 1.414...

You may also enter binary, octal, decimal, and hexadecimal integers using the manner in which Verilog accepts these numbers. Consider the number 1000. It can be written as follows:

HEX 'h3E8
DEC 'd1000
OCT 'o1750
BIN 'b1111101000

You can enter a number in whatever base you like, but it is always displayed in the manner specified by the number format setting. Besides the settings already described for real numbers, there are also settings for integers: HEX, DEC, OCT, and BIN, for displaying numbers in hexadecimal, decimal, octal, and binary. HEX, OCT, and BIN represent negative numbers in twos-complement. Also with these settings the number of digits requested sets the maximum number of digits displayed. If a number is larger than what can be displayed with the specified number of digits, then the most significant digits are suppressed.

SI scale factors accepted when entering numbers.
Multiplier Name Symbol Multiplier Name Symbol
1024 yotta Y 10-3 milli m
1021 zetta Z 10-6 micro u
1018 exa E 10-9 nano n
1015 peta P 10-12 pico p
1012 tera T 10-15 femto f
109 giga G 10-18 atto a
106 mega M 10-21 zepto z
103 kilo K or k 10-24 yocto y

SI scale factors used when displaying numbers.
Multiplier Name Symbol Multiplier Name Symbol
1012 tera T 10-3 milli m
109 giga G 10-6 micro μ
106 mega M 10-9 nano n
103 kilo K 10-12 pico p
10-15 femto f
10-18 atto a
Available Commands

You may type one or more commands into the command window. Each command must be separated by one or more space, with the only exception that select operators, marked with an asterisk (*), may immediately follow numbers and constants without a space. The available commands are listed below. Notice that some commands are not associated with buttons.

Button Command Operation Description Comment
Basic Operations
+ add* xxy
- subtract* xx − y
* multiply* xx × y
/ divide* xx ÷ y
|| parallel combination* x ← (x × y)/(xy) computes the resistance of a pair of resistors in parallel or the capacitance of a pair of capacitors in series
sqr, x2 square xx2
sqrt, rt, rtx square root xx1/2 x must not be negative
recip, 1/x reciprocal xx−1 x must not be zero
!, fact factorial* xx! x must be nonnegative integer
% percent* xx/100 × y
%chg percent change x ← 100(xy)/y y must not be zero
rms root mean square x ← (x2y2)1/2
Logarithms and Exponentiation
ln x
ln, loge natural log x ← loge(x) x must be positive
exp, aln, aloge, etox exponential or e raised to x power xex
log x
log, log10 common log x ← log10(x) x must be positive
10tox, alog, alog10, exp10 10 raised to x power x ← 10x
log2 base 2 log x ← log2(x) x must be positive
2tox, alog2, exp2 2 raised to x power x ← 2x
ytox, yx, pow y raised to x power xyx y must be positive if x is not an integer
deg use degrees
rad use radians
sin x
sin sine x ← sin(x)
sin−1 x
asin arc sine x ← sin−1(x) −1 ≤ x ≤ 1
cos x
cos cosine x ← cos(x)
cos−1 x
acos arc cosine x ← cos−1(x) −1 ≤ x ≤ 1
tan x
tan tangent x ← tan(x)
tan−1 x
atan arc tangent x ← tan−1(x) −π/2 < x < π/2
R → P
rtop rectangular coordinates to polar x ← (x2 + y2)1/2
y ← tan−1(y/x)
P → R
ptor polar coordinates to rectangular xx cos(y)
yx sin(y)
R → D
rtod radians to degrees x ← 180 x
D → R
dtor degrees to radians x ← π x / 180
Binary Operators
~ Bitwise negation* x ← ~x x is rounded to an integer before performing operation
& Bitwise and* xx & y x and y are rounded to integers before performing operation
| Bitwise or* xx | y x and y are rounded to integers before performing operation
^ Bitwise exclusive or* xx ^ y x and y are rounded to integers before performing operation
pi π x ← 3.141592...
2pi x ← 6.283185...
rt2, sqrt2 2 x ← 1.414214...
q charge of an electron x ← 1.60217653×10−19 C
k Boltzmann's constant x ← 1.3806505×10−23 J K−1
h Plank's constant x ← 6.6260693×10−34 J s
G universal gravitational constant x ← 6.6742×10−11 m−3 kg−1 s−2
c speed of light x ← 299,792,458 m/s
0c, 0C zero degrees Celsius in Kelvin x ← 273.15 K
eps0 permittivity of free space x ← 8.854187817×10−12 F/m1
mu0, u0 permeability of free space x ← 4×10−7 π; N/A2
rand uniformly distributed random number between 0 and 1 x ← ?
Unit Conversions
ftoc convert temperature from Fahrenheit to Celsius x ← (x - 32)/1.8
ctof convert temperature from Celsius to Fahrenheit x ← 1.8x + 32
→ dB20
db20 convert voltage or current ratio to dB x ← 20 log10(|x|)
adb20 convert dB to voltage or current ratio x ← 10x/20
→ dB10
db10 convert power ratio to dB x ← 10 log10(|x|)
adb10 convert dB to power ratio x ← 10x/10
v → dBm
vtodbm, vdbm convert peak voltage across R to power in dB relative to 1mW x ← 30 + 10 log(x2/(2R)) Assumes sinusoidal signal.
dBm → v
dbmtov, dbmv convert power in dB relative to 1mW to peak voltage across R x ← (2R 10(x−30)/10)−1/2 Assumes sinusoidal signal.
i → dBm
itodbm, idbm convert peak current through R to power in dB relative to 1mW x ← 30 + 10 log(Rx2/2) Assumes sinusoidal signal.
dBm → i
dbmtoi, dbmi convert power in dB relative to 1mW to peak current through R x ← (2 10(x−30)/10/R)−1/2 Assumes sinusoidal signal.
R stor store R, the resistance used in dBm calculations Rx R must be greater than 0.
R rclr recall R, the resistance used in dBm calculations xR
Stack Manipulations
ent, dup enter a number or run command, if nothing in cmd field push x onto stack again
clr x
clx, clr, clrx pop x from stack x ← y
y ← z
z ← t
clstk, clrstk clear the stack x ← 0
y ← 0
z ← 0
t ← 0
chs, chsx change sign of x x ← −x
last x
lastx recall previous value of x
ru roll stack upwards xt
rd roll stack downwards xy
x y
swap, xy swap x and y x ← y
y ← x
ξ stoξ store x intoξ ξ ← x ξ represents either register x, y, z, or t
ξ rclξ recall ξ into x x←ξ ξ represents either register x, y, z, or t
Memory Manipulations
N stoN store x into N N ← x N represents memory 0-9
N rclN recall N into x xN N represents memory 0-9
clmem, clrmem clear all memories A button for this function is provided on the primary version of the calculator (the version for Firefox). It appears as a thin blue unlabeled bar above memory 0.
eng, engN display number in engineering notation (ex. 25.4m) display N + 1 significant figures, 0 ≤ N ≤ 12
fix, fixN display number with fixed precision (ex. 0.0254) display N digits to the right of the decimal point, 0 ≤ N ≤ 12
flt, fltN display number in floating point notation (ex. 2.54e-2) display N + 1 significant figures, 0 ≤ N ≤ 12
sci, sciN display number in scientific notation (ex. 2.54×10−2) display N + 1 significant figures, 0 ≤ N ≤ 12
hex, hexN display numbers as hexadecimal integers (ex. 'hFF) display N digits, 0 ≤ N ≤ 8
dec, decN display numbers a decimal integers (ex. 'd255) display N digits, 0 ≤ N ≤ 10
oct, octN display numbers a octal integers (ex. 'o377) display N digits, 0 ≤ N ≤ 11
bin, binN display numbers a binary integers (ex. 'b11111111) display N digits, 0 ≤ N ≤ 32
update, refresh update calculator to use new modes
clr all
clall, clrall clear the entire calculator

* These operators may immediately follow numbers or constants (no space is required).

Return to calculator


11 Jan 2009

Added temperature unit conversions (ftoc, ctof).

14 Feb 2007

Corrected error in negation operator (~).
Added RMS operation.
Return to calculator

Trouble viewing this site?

Copyright © 2002-2014 Designer's Guide Consulting. 'Designer's Guide' is a registered trademark of Designer's Guide LLC. All rights reserved.

Give back to the Designer's Guide Community by shopping at Amazon. Purchasing products through this link helps to fund our activities and does not increase your cost.

Our colleges are not as safe as they seem. Sexual assault is pervasive and the treatment of the victim by the adminstration is often as damaging as the assault: Campus Survivors, Campus Survivors Forum.