An HP-48 Companion

A concise reference for everyday use doing arithmetic


  1. Introduction
  2. Display Format
  3. Stack Use
  4. Saving a Constant
  5. Directories
  6. Angle Conversions
  7. Complex Numbers
  8. Stopwatch
  9. Defining Functions
  10. Physical Constants
  11. References


The HP-48G is a superb handheld calculator, quite different from earlier HP calculators, but still with the familiar appearance. Many important features are not immediately suggested by the basic keyboard, however, and even the long-time HP user may be dismayed by the apparent lack of previous features. They are all there, however, and often in much more flexible and comprehensive form. The User's Guide gives a great deal of useful information as long as you are not interested in programming, but it is an inconvenient resource while doing everyday calculating. Special features, like programming, matrices, statistics, iterative solving, financial calculations, numerical integration and graphics are mentioned in several other articles on this website. This article treats only routine calculation, and may be useful for those who, like me, tend to forget rapidly when distracted. It can be used as a reference at hand, or can be reviewed periodically to refresh the memory.

Therefore, this article is intended for the experienced but absent-minded user of the HP-48, for whom the RPN notation and the stack are already second nature, and the HP-48's menus and CHOOSing have been at least partially mastered. The HP-48 has a much extended stack, which becomes even more valuable than it was in the past. The use of the six blank menu (soft) keys should be understood. Calling up the needed menu is one of the chief skills on the HP-48. With the menus and the stack, nothing is more than a keystroke or two away. An effort has been made to keep this article short, so it can easily be printed out or saved on disk and kept for reference. In many cases, there is more than one way to get things done, so I have chosen what seems most convenient to me.

The arrows → and ← refer to the cyan and magenta shift keys, respectively. Where a magenta function is not shown, both shifts can often be used with the same key function in cyan. Usually, the left shift gets an appropriate menu, while the right shift gets a form that does something, in addition to a menu.

Display Format

It is always worth changing the display format to suit the problem at hand. Available formats are: Std, which shows all 12 digits; Fix, which shows a fixed number of places after the decimal point; Sci, which shows a mantissa between 1 and 10 and the exponent; Eng, which is like Sci, except that the exponent is a multiple of 3. For currency, Fix 2 is the usual display. For much engineering work, Sci 4 is convenient.

Press → MODES to get the display control form. ← MODES does nothing. The cursor will be on the display format. CHOOS the format you wish using the cursor, then press menu key OK. For all but Std, the number of places must be entered. Move the cursor to this field, and key in the number of places. Press OK, and OK again to apply the choice. ENTER or CANCEL will ignore the choice.

Sometimes you will see ... at the end of an item, which says that there is more that is too long to be displayed. To see what is there, put the stack cursor on the item and press ← EDIT. The item will be shown in the command line, and the edit cursor can be moved to the right to see what has been hidden.

EDITing can always be done to change a number without retyping it.

Stack Use

Four levels are normally displayed, with their numbers at the left. In this article, level 3 means the level identified by 3: in the display. When you type in a number, it is placed in the command line at the bottom without a level number, and the stack is pushed up, without a change in the numbers. If an operation is performed, the item on the command line will be pushed up to level 1 and the operation will be performed on it, the result of the operation then appearing on level 1. This should be well-known to the reader, as well as the use of the arithmetic operation keys +, -, x and / with RPN.

To swap levels 1 and 2, as for arranging operands for subtraction or division, use the ← SWAP key. To remove the item on level 1 and let the stack sink, use ← DROP. To clear the whole stack, use ← CLEAR. If there is no command line displayed, then there are shortcuts. Cursor Right does SWAP, backspace does DROP, and DEL does CLEAR. Note that what they do is given by the magenta labels above the keys. These common stack operations are on the basic keyboard. The command line is cleared by pressing CANCEL, and pushed on the stack with ENTER. There is no need for a CLR key, so it is not present (it has been renamed CANCEL).

Less common stack operations are in the ← STACK menu. → STACK will put you in stack editing mode, which normally you will not want. OVER will copy the item in level 2 and put the copy in level 1, pushing the stack up. Note that this is like SWAP, except that the quantity in level 2 is copied, not moved. To move any of the quantities from levels 1 through 3 to level 1, press ROT. This brings the item in level 3 to level 1, pushing the other two items up. Pressing ROT repeatedly just moves these three items circularly. If you want an extra copy of level 1 instead of level 2, use DUP. SWAP, OVER, DUP and DROP give full control of levels 1 and 2, and require nothing except pushing the function key. You can also DUP2 and DROP2 to copy levels 1 and 2, or to drop them both. These are useful because many operations require two operands.

To copy any item on the stack to level 1, type in the stack level of the item as it appears, then press PICK. To move any item on the stack to level 1, type in the stack level and press ROLL. The item will appear in level 1. Of course, SWAP is just 2 ROLL, and ROT is 3 ROLL. OVER is 2 PICK. n ROLLD drops the stack below level n, and puts the displaced item in level n. 3 ROLLD is the inverse of ROT, and cycles the lowest three items in the opposite order. On older HP's, ROT was R↑, and 3 ROLLD was R↓, if you miss them. ROT is an unusually useful function, especially in programs. The full control of the stack is one of the best features of the HP-48, and it is well worth using to avoid reentry of numbers and the consequent mistakes.

Saving a Constant

To save a constant, put the constant in level 1, then type ', hold the α key down and type in an identifier, beginning with a letter. Pressing α once allows the entry of one letter; pressing it twice puts you in alpha mode, and letters are entered until you press α again. Press STO, and the identifier will appear in the VAR menu. To recall the value of the constant to the command line, press the corresponding menu key. These "constants" are really named variables, and can be used in algebraic expressions.

To modify a constant, put the new value in level 1 (or in the command line), and then press ← and the soft key for the constant. The old value will replace the new in the display. Press the soft key again to see that the new value has been loaded. When finished with the constant, type in the identifier after ', then press ← PURG. This will erase the constant and remove it from the menu.

Another way to save a constant is to push it on the stack. If you save it with the constants facility (see below) it will even be identified. n PICK will then fetch the constant quickly.


The HP-48 can store variables in different directories, to help you classify them and avoid large numbers of variables in the same directory. The default directory is {HOME}. The current directory is shown in the display at the upper left-hand corner, with the route to HOME. To make a new subdirectory within the current directory, press →MEMORY and then the soft key NEW. Move the highlight down until it is on _DIRECTORY. The soft key CHK will appear. Press it, and DIRECTORY will now be checked. Move the highlight up and key in the name of the directory, using the α key the usual way. Press soft key OK, and the directory is created.

Subdirectories will appear in the VAR keys of the directory. To go to a subdirectory, simply press this key. Alternatively, highlight it in the MEMORY display and press CHOOS. Highlight it again, and press OK. It will be shown in the display when you leave →MEMORY. To go back to the parent directory, press ←UP, or →HOME to go all the way to the root. When you press VAR, only the variables in the current directory are shown.

When you practice this, you will note that named variables can also be created in →MEMORY NEW. Leave _DIRECTORY unchecked, and fill in a value and a name. The value can be a real or complex number, an algebraic expression delimited by '', an array delimited by [], a list delimited by {}, or any other appropriate object. Press OK to create the variable.

SOLVE creates variables in the current directory. They can be removed by highlighting them in the MEMORY display and pressing PURG. PURG is also on the keyboard. Enter the name of a variable with ', then press ←PURG to erase the variable. This also works with directories.

It is very convenient to create a directory for each class of problems that you work on, containing constants, variables for programs and functions, and the programs and functions themselves.

Angle Conversions

Conversion between degrees and radians is done with the functions MTH REAL NXT NXT D→R and R→D. The only problem with this is remembering the route to the functions.

Hexadecimal to decimal conversions are handled by ← TIME NXT functions →HMS and HMS→. Note that the magenta ← is used, not the cyan → that gets you into the TIME input form. The first of these functions converts from decimal degrees or hours into sexagesimal, while the second function performs the inverse transformation. With HMS+ and HMS- you can even add and subtract sexagesimal values directly. The sexagesimal format is H.MMSSs (H and s may be zero or more digits). That is, 23° 17' 44.5" is entered as 23.17445. In decimal, this angle is 23.295694.

Complex Numbers

An excellent feature of the HP-48 is that a complex number is treated as a structure that can be stored on one stack level like any item. Older calculators treated x and y (stack levels 1 and 2) as the real and imaginary, or magnitude and angle, parts of a complex number, and provided R→P and P→R conversion functions. This was a tradition going back to the slide rule. These operations are important in preparing a complex number either for addition and subtraction (rectangular) or multiplication and division (polar). This is not necessary with the HP-48, since complex numbers may be manipulated like real numbers, using the +, -, x and / keys (as well as square root, square, powers, trig functions, and so forth). If you should want rectangular-polar conversion, it is easily done simply by changing the display mode. The HP-48 makes working with phasors very simple, conveninent, and error-free.

Press → POLAR to toggle the complex number display mode between rectangular and polar. When in polar mode, a reminder is displayed at the top of the screen. It does not matter whether the polar display mode is spherical or cylindrical. All complex numbers on the stack will be displayed in the current mode.

A complex number is entered within ( ) delimiters, so begin with ← ( ), which gives you both beginning and ending parentheses and puts the cursor between them. Real and imaginary (rectangular) components are separated by SPC. Press ENTER and the complex number will appear on level 1 with a comma between the components. Don't type in an explicit comma. If you use the angle separator <) instead (→ SPC), the first entry will be interpreted as the magnitude, and the second as the angle from the positive real axis. Press ENTER, and the complex number will be displayed in the current mode. Toggle the display mode to see the effortless R→P conversion.

A complex number can be unpacked into two real numbers using the MTH NXT CMPL menu function C→R. The real part will go to level 2, while the imaginary part will go to level 1. This will not unpack the magnitude and angle, however. This is the reverse of the earlier convention that put the real part in level 1 and the imaginary part in level 2. However, it does mean that components are entered in the order real, imaginary. To pack two numbers into a complex number, use the function R→C. This feature allows you to work with the real and imaginary components separately.

Complex numbers can be multiplied and divided by scalars simply by keying in the scalar and pressing x or /. There are keys that will return real or imaginary parts, magnitude or argument, complex conjugate, negative, and even a complex number of unit magnitude and the same direction.


The HP-48G makes a useful stopwatch. In the ←TIME menu you will find the soft key TICKS. When you press TICKS, the current value of the system clock will be pushed on the stack. If you press TICKS again, the updated value of the system clock will be pushed on the stack. Do SWAP (Cursor Right) - to find the number of ticks elapsed between the two presses of TICKS. The # binary delimiter and the final "h" indicate that this is a hex number. Pressing MTH BASE will show the soft key B→R on the far right. Pressing it will convert the hex value to a decimal (real) value. Since there are 8192 ticks in a second, dividing by 8192 will give you the elapsed time between the two presses of TICKS in seconds, to a precision of about 0.0001 s.

Defining Functions

If you evaluate a function repeatedly, it is very convenient to define the function so that it takes its arguments from the stack and calculates a value when a soft key is pressed. Many calculations can be put into this form, and defining a function will save much work and error. This "user-defined" function will work just like a built-in function. It does not involve programming, simply the evaluation of an algebraic expression.

Type in an algebraic expression defining the function, in the form 'name(arguments)=expression'. Then, simply press ←DEF. The HP-48 will interpret the equation, and create a soft key associated with the name. The argument list is separated by commas, and the rightmost variable is expected lowest on the stack. Try this with 'HYP(X,Y)=√(X^2+Y^2)'. Use √X to get the radical, and yx to get the ^. The "," and "=" are on the lowest line of keys, and are preceded by ←. Push 3, 4 on the stack and press the soft key HYP to get 5.000. The inconvenience of these functions is remembering how to set up the stack before calling them. One can keep written notes, or look at the function in →MEMORY to see what it takes. The variables could have mnemonic names.

Much more elaborate functions can be evaluated by a program, of course.

Physical Constants

The HP-48 contains a useful table of physical constants. ← EQ LIB (not the → EQ LIB following the colors) gets a menu with a choice COLIB. Press COLIB, then CONLI to see the list of constants. Names are shown initially, but VALU will display abbreviations and values. Even the units can be shown (do not use this unless you want units to accompany the values returned). All these choices toggle, so you can escape when necessary. Placing the cursor on a constant and pressing →STK pushes the constant on the stack. Press QUIT to return to the stack display. This is, unfortunately, a rather cumbersome process that I have found no way to shorten.

When I am going to be using several physical constants repeatedly, I find it convenient to push all that I will be using on the stack during one visit to CONLI. Then they are easily recalled by number using PICK. Since the stack goes up and down, the numbers will change and must be checked by looking at the stack. This is a small inconvenience compared with going back to CONLI.

With the default flag settings, the constant ← π returns the letter in ' ' delimiters. Press EVAL to get the numerical value. Set flag -3 to obtain the numerical result directly (this will, of course, evaluate any other expressions recalled to the command line). Flags are set and cleared in the → MODES menu obtained by pressing the FLAG key. Flag 03 should be checked. The CHK key toggles the check on the flag selected by the cursor. Press OK twice to return to the stack display.


HP-48G Series User's Guide, 8th ed. (Corvallis, OR: Hewlett-Packard Co., 1994).

Return to Tech Index

Composed by J. B. Calvert
Created 23 May 2003
Last revised 14 February 2005