|
Designer's Guide Community Calculator
|
|
The 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:
- Efficient command line entry.
- Entry and display of numbers with SI scale factors.
- Entry and display of integers in base 2, 8, 10, and 16 using Verilog format.
- Multistep undo.
- Compatibility with your computer's clipboard feature.
- 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:
0.0000013
1.3e-6
1.3u
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 2π, 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* |
x ← x + y |
|
| − |
- |
subtract* |
x ← x − y |
|
| × |
* |
multiply* |
x ← x × y |
|
| ÷ |
/ |
divide* |
x ← x ÷ y |
|
| || |
|| |
parallel combination* |
x ← (x × y)/(x + y) |
computes the resistance of a pair of resistors in parallel or the capacitance of a pair of capacitors in series |
| x2 |
sqr, x2 |
square |
x ← x2 |
|
| √x |
sqrt, rt, rtx |
square root |
x ← x1/2 |
y must not be negative |
| 1/x |
recip, 1/x |
reciprocal |
x ← x−1 |
x must not be zero |
| x! |
!, fact |
factorial* |
x ← x! |
x must be nonnegative integer |
|
% |
percent* |
x ← x/100 × y |
|
| %Δ |
%chg |
percent change |
x ← 100(x − y)/y |
y must not be zero |
|
rms |
root mean square |
x ← (x2 + y2)1/2 |
|
|
|
|
|
|
| Logarithms and Exponentiation |
| ln x |
ln, loge |
natural log |
x ← loge(x) |
x must be positive |
| ex |
exp, aln, aloge, etox |
exponential or e raised to x power |
x ← ex |
|
| log x |
log, log10 |
common log |
x ← log10(x) |
x must be positive |
| 10x |
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 |
|
| yx |
ytox, yx, pow |
y raised to x power |
x ← yx |
y must be positive if x is not an integer |
|
|
|
|
|
| Trigonometry |
|
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) |
|
| sin−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 |
x ← x cos(y)
y ← x 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* |
x ← x & y |
x and y are rounded to integers before performing operation |
|
| |
Bitwise or* |
x ← x | y |
x and y are rounded to integers before performing operation |
|
^ |
Bitwise exclusive or* |
x ← x ^ y |
x and y are rounded to integers before performing operation |
|
|
|
|
|
| Constants |
| π |
pi |
π |
x ← 3.141592... |
|
| 2π |
2pi |
2π |
x ← 6.283185... |
|
| √2 |
rt2, sqrt2 |
√2 |
x ← 1.414214... |
|
| q |
q |
charge of an electron |
x ← 1.60217653×10−19 |
C |
| k |
k |
Boltzmann's constant |
x ← 1.3806505×10−23 |
J K−1 |
| h |
h |
Plank's constant |
x ← 6.6260693×10−34 |
J s |
|
g |
gravitational constant |
x ← 6.6742×10−11 |
m−3 kg−1 s−2 |
| c |
c |
speed of light |
x ← 299,792,458 |
m/s |
| 0°C |
0c, 0C |
zero degrees Celsius in Kelvin |
x ← 273.15 |
K |
| ε0 |
eps0 |
permittivity of free space |
x ← 8.854187817×10−12 |
F/m1 |
| μ0 |
mu0, u0 |
permeability of free space |
x ← 4×10−7 π; |
N/A2 |
|
rand |
uniformly distributed random number between 0 and 1 |
x ← ? |
|
|
|
|
|
|
| Decibels |
| → dB20 |
db20 |
convert voltage or current ratio to dB |
x ← 20 log10(|x|) |
|
| dB20→ |
adb20 |
convert dB to voltage or current ratio |
x ← 10x/20 |
|
| → dB10 |
db10 |
convert power ratio to dB |
x ← 10 log10(|x|) |
|
| dB10→ |
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 |
R ← x |
R must be greater than 0. |
R |
rclr |
recall R, the resistance used in dBm calculations |
x ← R |
|
|
|
|
|
|
| Stack Manipulations |
| enter ↑ |
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 |
chs, chsx |
change sign of x |
x ← −x |
|
| last x |
lastx |
recall previous value of x |
|
|
| R↑ |
ru |
roll stack upwards |
x ← t
y ← x
z ← y
t ← z
|
|
| R↓ |
rd |
roll stack downwards |
x ← y
y ← z
z ← t
t ← x
|
|
| 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 |
x ← N |
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. |
|
|
|
|
|
| Display |
|
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 |
|
|
|
|
|
| Miscellaneous |
| update |
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
|
|
| Errata |
|
|
|
|
|
|